判斷語句python
語法結構vim
if 條件1:dom
若是條件1爲真,執行語句塊測試
elif 條件2:優化
若是條件2爲真,執行語句塊spa
elif 條件3:遊戲
若是條件2爲真,執行語句塊字符串
elif 條件n:get
若是條件n爲真,執行語句塊input
else:
若是上述條件都爲假,執行語句塊
判斷條件是一個分支結構,只會執行一個分支
數據類型也能夠做爲判斷條件。對於數字,任何值爲0的數字都是假,非0爲真;其餘數據類型,非空爲真,空爲假
if -0.0:
print('值爲0,假') # 不打印
if ' ':
print('空格也是一個字符,爲真')
if '':
print('空字符串,假') # 不打印
if [10, 20]:
print('非空列表,爲真')
if (10, 20):
print('非空元組,爲真')
a = 10
b = 20
if a < b:
s = a
else:
s = b
print(s)
#以上判斷能夠簡寫爲
s1 =a if a < b else b
print(s)
在python中,有很是多的功能,不是直接加載,而是放到了不一樣的模塊文件中,使用模塊時,
先經過import導入,而後使用【模塊.功能】的方式使用
1.模擬用戶登陸
vim login.py
import getpass
username = input("請輸入用戶名: ")
passwd = getpass.getpass("請輸入密碼:") #可以獲取用戶的輸入不在屏幕中顯示
if username == "bob" and passwd == '123456':
print("登陸成功")
else:
print("登陸失敗")
2.分數測試
num = int(input('分數:'))
if num >= 60 and num < 70:
print('及格')
elif 70 <= num < 80:
print('良')
elif 80 <= num < 90:
print("好")
elif num >= 90:
print("優秀")
else:
print('你要努力了')
random模塊
>>> import random
>>> random.randint(1.100) #隨機取出1-100之間的數字
77
>>>random.choice('abcd') #在字符串中取出一項
'd'
>>>random.choice(['aaa', 'bbb', 'ccc']) #在列表中隨機取出一項
'bbb'
3.編寫石頭剪刀布小遊戲
import random
win_list = [['石頭', '剪刀'],['剪刀', '布'],['布', '石頭']]
xuan_xiang = ['石頭', '剪刀', '布']
computer = random.choice(xuan_xiang)
player = input('請出拳(石頭/剪刀/布): ')
print('player: %s, computer: %s' % (player, computer))
if player == computer:
print("平局")
elif [player, computer] in win_list:
print("你贏了")
else:
print("你輸了")
循環語句
若是循環次數未知,使用while循環
若是循環次數已知,使用for循環
語法結構
while 條件:
若是條件爲真,執行語句塊
語句塊執行完畢後,返回到while條件
while後面得條件,也和if的條件徹底同樣
3.優化石頭剪刀布腳本,三局兩勝
import random
win_list = [['石頭', '剪刀'],['剪刀', '布'],['布', '石頭']]
xuan_xiang = ['石頭', '剪刀', '布']
#爲人機建立計數器
pwin = 0
cwin = 0
while pwin < 2 and cwin < 2:
computer = random.choice(xuan_xiang)
player = input('請出拳(石頭/剪刀/布): ')
print('player: %s, computer: %s' % (player, computer))
if player == computer:
print("\033[32;1m平局\033[0m") 顏色:\033[32;1m常量\033[0m
elif [player, computer] in win_list:
print("\033[31;1m你贏了\033[0m")
pwin += 1
else:
print("\033[31;1m你輸了\033[0m")
cwin += 1
while循環中還能夠包含break子句,循環遇到break將會結束循環
continue語句用於跳過本次循環,回到判斷條件處
python的循環語句也有else,當循環被break時,else語句不執行,不然執行
for循環
for循環也有continue/break/else,用法與while徹底同樣
for循環常常和renge連用
s1 = 'abc'
l1 = ['tom', 'jerry', 'jack', 'rose']
t1 = (10, 20, 30)
d1 = {'name': 'nb', 'age': 20}
for zifu in s1:
print(zifu)
a
b
c
for name in l1:
print(name)
tom
jerry
jack
rose
for i in t1:
print(i)
10
20
30
for key in d1:
print(key, d1[key])
name nb
age 20
for循環常常和renge連用
>>> range(10)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> range(0,10)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> list(range(10)) #將range轉成列表
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>>for i in range(10): #實際使用時,不須要轉列表
... print(i)
...
>>> list(range(10)) #10是結束數字,起始值默認爲0,結束數字不包含
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> list(range(6,11)) #6是起始數字,包含
[6, 7, 8, 9, 10]
>>> list(range(1,11,2)) #步長爲2
[1, 3, 5, 7, 9]
>>> list(range(10,0,-1)) #步長爲-1
[10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
列表解析
用於快捷便捷地生成列表解析
>>> [10]
[10]
>>> [10 + 1] #將表達式的結果存入列表
[11]
>>> [10 + 1 for i in range(1,11)] #經過循環控制表達式的計算次數
[11, 11, 11, 11, 11, 11, 11, 11, 11, 11
>>> [10 + i for i in range(1,11)] #表達式能夠用循環的變量
[11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
>>> [10 + i for i in range(1,11) if i % 2 == 1] #if做爲過濾條件,知足條件的放到列表
[11, 13, 15, 17, 19]
>>>['192.168.4.%s' % i for i in range(255)]
>>>['192.168.4.' +str(i) for i in range(255)]