判断语句 、 while循环 、 for循环

                                                                             判断语句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)]

相关文章
相关标签/搜索