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()        # 编译不通过,未定义行为,编译器不知如何进行元组的分配
  • 相关阅读:
    SGU 275. To xor or not to xor
    4364: [IOI2014]wall砖墙
    3211: 花神游历各国
    5248: [2018多省省队联测]一双木棋
    3106: [cqoi2013]棋盘游戏
    POJ 1568 Find the Winning Move
    P3527 [POI2011]MET-Meteors
    P2617 Dynamic Rankings
    3262: 陌上花开
    1176: [Balkan2007]Mokia
  • 原文地址:https://www.cnblogs.com/mtcnn/p/9423776.html
Copyright © 2011-2022 走看看