zoukankan      html  css  js  c++  java
  • Python 奇葩语法

    • a = 1, 2, 3
      • 赋值后的结果,a == (1, 2, 3),将一个元组(tuple)赋给了变量 a
      • (1, 2) + (3, ) ⇒ (1, 2, 3),并不能说明 tuple 可以添加新的元素,而是重新开辟了新的内存空间;
    • 之所以 l.extend(4) 类型错误,而 l.extend('c') 没有问题,在于字符串是可迭代对象,且 Python 中不区分单个字符与字符串的区别,均是字符串。

    0. 输出 vs. 返回值

    注意输出与返回值之间的关系

    >> s = range(5)
    >> [print(i) for i in s]
    0
    1
    2
    3
    4
    Out[2]: [None, None, None, None, None]

    1. tuple?

    >> m = (1)
    >> m 
    1
    
    >> m = (1, )
    >> m
    (1, )               # tuple 类型
    
    >> m = 1, 
    >> m
    (1, )

    2. append

    >> l = []
    >> l.append(None)
    >> len(l)
    1

    3. 输出百分值

    >>> print('%i%%'%(10))
    10%
    
    >>> print('{0}%'.format(10))
    10%

    4. 返回元组

    def foo():
        return 1, 2           # return (1, 2)
    x = foo()                 # 此时x是元组((1, 2)),
    x, y = foo()              # 此时x是元组的第一个元素((1))
                              # 颇有几分自动类型推导的意思

    接着捣蛋:

    def foo():
        return 1, 2, 3
    x = foo()           # 编译通过
    x, y, z = foo()     # 编译通过
    x, y = foo()        # 编译不通过,未定义行为,编译器不知如何进行元组的分配
  • 相关阅读:
    将截断字符串或二进制数据。语句已终止的解决方法
    201812-1 小明上学 Java
    201809-2 买菜 Java
    201809-1 卖菜 Java
    201803-2 碰撞的小球 Java
    201803-1 跳一跳 Java
    201712-2 游戏 Java
    201712-1 最小差值 Java
    201709-2 公共钥匙盒 Java
    201709-1 打酱油 Java
  • 原文地址:https://www.cnblogs.com/mtcnn/p/9423777.html
Copyright © 2011-2022 走看看