Rumah > pembangunan bahagian belakang > Tutorial Python > Python初学者的17个技巧

Python初学者的17个技巧

大家讲道理
Lepaskan: 2016-11-07 10:03:52
asal
1126 orang telah melayarinya

交换变量

x = 6
y = 5
x, y = y, x
print x
>>> 5
print y
>>> 6
Salin selepas log masuk

if 语句在行内

print "Hello" if True else "World"
>>> Hello
Salin selepas log masuk

连接

下面的最后一种方式在绑定两个不同类型的对象时显得很酷。

nfc = ["Packers", "49ers"]
afc = ["Ravens", "Patriots"]
print nfc + afc
>>> ['Packers', '49ers', 'Ravens', 'Patriots']
print str(1) + " world"
>>> 1 world
print `1` + " world"
>>> 1 world
print 1, "world"
>>> 1 world
print nfc, 1
>>> ['Packers', '49ers'] 1
Salin selepas log masuk

计算技巧

#向下取整
print 5.0//2
>>> 2
# 2的5次方
print 2**5
>> 32
Salin selepas log masuk

注意浮点数的除法

print .3/.1
>>> 2.9999999999999996
print .3//.1
>>> 2.0
Salin selepas log masuk

数值比较

x = 2
if 3 > x > 1:
   print x
>>> 2
if 1 < x > 0:
   print x
>>> 2
Salin selepas log masuk

两个列表同时迭代

nfc = ["Packers", "49ers"]
afc = ["Ravens", "Patriots"]
for teama, teamb in zip(nfc, afc):
     print teama + " vs. " + teamb
>>> Packers vs. Ravens
>>> 49ers vs. Patriots
Salin selepas log masuk

带索引的列表迭代

teams = ["Packers", "49ers", "Ravens", "Patriots"]
for index, team in enumerate(teams):
    print index, team
>>> 0 Packers
>>> 1 49ers
>>> 2 Ravens
>>> 3 Patriots
Salin selepas log masuk

列表推导

已知一个列表,刷选出偶数列表方法:

numbers = [1,2,3,4,5,6]
even = []
for number in numbers:
    if number%2 == 0:
        even.append(number)
Salin selepas log masuk

用下面的代替

numbers = [1,2,3,4,5,6]
even = [number for number in numbers if number%2 == 0]
Salin selepas log masuk

字典推导

teams = ["Packers", "49ers", "Ravens", "Patriots"]
print {key: value for value, key in enumerate(teams)}
>>> {&#39;49ers&#39;: 1, &#39;Ravens&#39;: 2, &#39;Patriots&#39;: 3, &#39;Packers&#39;: 0}
Salin selepas log masuk

初始化列表的值

items = [0]*3
print items
>>> [0,0,0]
Salin selepas log masuk

将列表转换成字符串

teams = ["Packers", "49ers", "Ravens", "Patriots"]
print ", ".join(teams)
>>> &#39;Packers, 49ers, Ravens, Patriots&#39;
Salin selepas log masuk

从字典中获取元素

不要用下列的方式

data = {&#39;user&#39;: 1, &#39;name&#39;: &#39;Max&#39;, &#39;three&#39;: 4}
try:
   is_admin = data[&#39;admin&#39;]
except KeyError:
   is_admin = False
Salin selepas log masuk

替换为

data = {&#39;user&#39;: 1, &#39;name&#39;: &#39;Max&#39;, &#39;three&#39;: 4}
is_admin = data.get(&#39;admin&#39;, False)
Salin selepas log masuk

获取子列表

x = [1,2,3,4,5,6]
#前3个
print x[:3]
>>> [1,2,3]
#中间4个
print x[1:5]
>>> [2,3,4,5]
#最后3个
print x[-3:]
>>> [4,5,6]
#奇数项
print x[::2]
>>> [1,3,5]
#偶数项
print x[1::2]
>>> [2,4,6]
Salin selepas log masuk

60个字符解决FizzBuzz

前段时间Jeff Atwood 推广了一个简单的编程练习叫FizzBuzz,问题引用如下:


写一个程序,打印数字1到100,3的倍数打印“Fizz”来替换这个数,5的倍数打印“Buzz”,对于既是3的倍数又是5的倍数的数字打印“FizzBuzz”。

这里有一个简短的方法解决这个问题:

for x in range(101):print"fizz"[x%3*4::]+"buzz"[x%5*4::]or x
Salin selepas log masuk

集合

用到Counter库

from collections import Counter
print Counter("hello")
>>> Counter({&#39;l&#39;: 2, &#39;h&#39;: 1, &#39;e&#39;: 1, &#39;o&#39;: 1})
Salin selepas log masuk

迭代工具

和collections库一样,还有一个库叫itertools

from itertools import combinations
teams = ["Packers", "49ers", "Ravens", "Patriots"]
for game in combinations(teams, 2):
    print game
>>> (&#39;Packers&#39;, &#39;49ers&#39;)
>>> (&#39;Packers&#39;, &#39;Ravens&#39;)
>>> (&#39;Packers&#39;, &#39;Patriots&#39;)
>>> (&#39;49ers&#39;, &#39;Ravens&#39;)
>>> (&#39;49ers&#39;, &#39;Patriots&#39;)
>>> (&#39;Ravens&#39;, &#39;Patriots&#39;)
False == True
Salin selepas log masuk

在python中,True和False是全局变量,因此:

False = True
if False:
   print "Hello"
else:
   print "World"
>>> Hello
Salin selepas log masuk



Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan