- 交互模式中,最近一个表达式的值赋给变量 _。这样我们就可以把它当作一个桌面计算器,很方便的用于连续计算,例如:
>>> tax = 12.5 / 100
>>> price = 100.50
>>> price * tax
12.5625
>>> price + _
113.0625
>>> round(_, 2)
113.06
- 如果你前面带有 \ 的字符被当作特殊字符,你可以使用 原始字符串,方法是在第一个引号前面加上一个 r:
>>> print('C:\some\name') # here \n means newline!
C:\some
ame
>>> print(r'C:\some\name') # note the r before the quote
C:\some\name
- python连续赋值的运算顺序
c, b, a = a+b+c, c, b
计算顺序是:
1)计算右边的数值,先计算a+b+c
2) 从右边开始,把b的值赋给a,c的值赋给b,a+b+c的值赋给a
相当于:
m = a+b+c
a = b
b = c
c = m
4.字符串打印时不用引号包围,每两个子项之间自动插入空间
- 有趣的表达1
a = ['Mary', 'had', 'a', 'little', 'lamb']
for i in range(len(a)):
print(i, a[i])
0 Mary
1 had
2 a
3 little
4 lamb
- 有趣的表达2_计算素数
for n in range(2, 10):
for x in range(2, n):
if n % x == 0:
print(n, 'equals', x, '*', n//x)
break
else: # 这个else是和for组成循环哦
# loop fell through without finding a factor
print(n, 'is a prime number')
...
2 is a prime number
3 is a prime number
4 equals 2 * 2
5 is a prime number
6 equals 2 * 3
7 is a prime number
8 equals 2 * 4
9 equals 3 * 3
- break/continue/pass
注意下面的例子,不论对于break/pass/continue来说,跳出的都是for循环,而不是if。
for num in range(2, 10):
if num % 2 ==0:
print("Found a even number", num)
continue
print("Found a number", num)
- 有趣的表达3_使用**拆分关键字参数为字典
def parrot(voltage, state='a stiff', action='voom'):
print("-- This parrot wouldn't", action, end=' ')
print("if you put", voltage, "volts through it.", end=' ')
print("E's", state, "!")
d = {"voltage": "four million", "state": "bleedin' demised", "action": "VOOM"}
parrot(**d)
This parrot wouldn't VOOM if you put four million volts through it. E's bleedin' demised !
- 有趣的表达_lambda中的数据指向
pairs = [(1, 'one'), (2, 'two'), (3, 'three'), (4, 'four')]
pairs.sort(key=lambda pair: pair[1])
print(pairs)
这里要理解的是pair[1], pair[1]在排序键应为元组的第二个元素上, pair[0]就是指元祖的第一个数据。所以前者按照one,two,three和four的字母先后顺序排序,后者按照1,2,3,4的大小排序