if语句
1、if 条件:
执行代码块(条件成立)
i = 1
if i < 5: # 条件成立
print('我比5小') #输出为 我比5小
2、if 条件:
满足条件执行的代码块1
else:
没有满足if条件执行的代码块2
i = 1
if i < 5: #条件不成立所以执行else里的代码
print('我比5小')
else:
print('我比5大')
print('这里还是属于else里的代码块')
print('注意缩进')
#输出为 我比5小
# 注意缩进
3、if 条件:
满足if条件执行的代码块1
elif 条件1:
满足条件1执行的代码块2
elif 条件2:
满足条件2执行的代码块3
else:
不满足以上条件执行的代码块4
piao = '没钱'
if piao == '有票' :
print('我要坐上或者去拉萨')
elif piao == '没票':
print('我要去先补个票')
else:
print('票都没得补,回家睡觉')
#输出为 票都没得补,回家睡觉
4、if嵌套
if 条件:
满足if条件执行的代码块
elif 条件1:
if 条件1-1:
满足条件1-1执行的代码块
elif 条件1-2:
满足条件1-2执行的代码块
else:
都不满足执行的代码块
elif 条件2:
满足条件2执行的代码块
elif 条件3:
满足条件1执行的代码块
x = int(input("Please enter first value1:")) #int()转化类型为int型
y = int(input("Please enter second value2:"))
z = int(input("Please enter second value3:"))
if (x==y==z):
print("三数相同!")
elif (x>y):
if (z>x):
print("最大数为:",z)
else:
print("最大数为:",x)
else:
if (z>y):
print("最大数为:",z)
else:
print("最大数为:",y)
导入模块
Python程序可以调用一组基本的函数,这称为“内建函数”,包括之前见过的print()、input()函数,Python也包含一组模块,称为“标准库”。每个模块都是一个Python程序,包含一组相关的函数,可以嵌套到自己的程序中。例如:math模块有数学运算相关的函数,random模块有随机数相关的函数。在使用一个模块中的函数之前,必须用import语句导入该模块。
import 模块1,模块2,模块3————例如:import random,sys,os,math
import random
i=1
while i<=5:
print(random.randint(1,10),end = ' ') #输出为 9 4 8 3 5
i+=1
例子:猜拳游戏
import random
user = input('请输入石头、剪刀、布:') #接受用户输入的内容
cont = ['石头','剪刀','布'] #初始化数据
num = random.randint(0,3) #获取0-2随机数
#random.randint(x,y) 返回x 到 y 之间的随机数
if user == '石头':
if cont[num] == '石头':
print('用户输入的是%s,电脑输入的是%s,平局'%(user,cont[num]))
elif cont[num] == '剪刀':
print('用户输入的是%s,电脑输入的是%s,你赢了'%(user, cont[num]))
elif cont[num] == '布':
print('用户输入的是%s,电脑输入的是%s,电脑赢了'%(user, cont[num]))
elif user == '剪刀':
if cont[num] == '石头':
print('用户输入的是%s,电脑输入的是%s,电脑赢了'%(user,cont[num]))
elif cont[num] == '剪刀':
print('用户输入的是%s,电脑输入的是%s,平局' % (user, cont[num]))
elif cont[num] == '布':
print('用户输入的是%s,电脑输入的是%s,你赢了'%(user, cont[num]))
elif user == '布':
if cont[num] == '石头':
print('用户输入的是%s,电脑输入的是%s,你赢了'%(user,cont[num]))
elif cont[num] == '剪刀':
print('用户输入的是%s,电脑输入的是%s你输了'%(user, cont[num]))
elif cont[num] == '布':
print('用户输入的是%s,电脑输入的是%s,平局'%(user, cont[num]))
else:
print('您的输入有误!拜拜')
while循环
1、while 条件:
代码块
i = 1 #初始化变量为1
while i<=10: #对初始化条件信息判断 判断成立则进入循环体
print('I Love You') #输出为 10行I Love You
i+=1 #这里对变量进行一个累加 i = i+1
print(i) #输出为11
2、while 条件1:
满足条件1执行代码块1
while 条件2:
满足条件1又满足条件2执行代码块2
'''
输出为
*
* *
* * *
* * * *
* * * * *
'''
i = 0
while i < 5: #控制行数
m = 0
while m <= i: #控制个数
print('*',end = ' ') #表示print的结束符为空格 默认是换行
m+=1
i+=1
print() #每行输出完毕之后输出一个换行 print默认是换行结尾
3、while循环使用else语句,while-else在条件语句为false时执行else语句块
while 条件:
满足条件执行代码块
else:
不满足条件执行代码块
'''
输出为
爱你一万年
爱你一万年
爱你一万年
我是至尊宝
'''
a = 0 #初始化变量
while a < 3:
print('爱你一万年')
a+=1 #进行累加 每一次循环自动加1
else: #当条件不成立的时候
print('我是至尊宝')
终止循环
1、使用break退出循环
整个循环结束
'''
输出为
至尊宝:爱你一万年
至尊宝:爱你一万年
至尊宝:爱你一万年
紫霞仙子:别说话,吻我!
'''
a = 0 #初始化变量
while a < 5: #判断条件 a = 0
if a == 3: #判断条件
print('紫霞仙子:别说话,吻我!')
break #当a = 3,进入if,输出一句话,然后break跳出整个循环,整个循环结束
print('至尊宝:爱你一万年')
a+=1 #进行累加 每一次循环自动加1
2、使用continue退出循环
退出当前循环,再继续执行下一次循环,大循环还在继续,只是结束了当前一个循环
'''
输出为
第1圈开始 好累哈 第1圈结束
第2圈开始 好累哈 蹭老师不注意,后半圈没跑
第3圈开始 好累哈 第3圈结束
'''
a = 0
while a <3:
a += 1
print('第%d圈开始'%a,end=' ')
print('好累哈',end=' ')
if a == 2:
print('蹭老师不注意,后半圈没跑')
continue
print('第%d圈结束'%a)
for循环
1、for可以循环遍历任何序列项目,如一个列表或者一个字符串。(序列可以是列表元组集合,如果是字典只能遍历keys,无法遍历values)
for 变量 in 序列:
满足条件执行代码块
'''
输出为
joe
susan
jack
Tom
'''
list01 = ['joe','susan','jack','Tom'] #遍历列表
for i in list01: #遍历list01这个列表,将列表中的元素依次复制给变量 i
print(i) #输出i 直到将所有的元素遍历完毕停止遍历
遍历字典,continue与break的用法和while中的没有区别
'''
创建一个名为favorite_places的字典。在这个字典中,将三个人的名字用作键;
对于其中的每个人,都存储他喜欢的1〜3个地方. 输入一个人名(input)
遍历这个字典,并将这个人喜欢的地方打印出来。
'''
favorite_places = {'张三':['上海','北京','深圳'],
'李四':['张家界','九寨沟','鼓浪屿']}
name = input('请输入姓名:')
sign = 0
for i in favorite_places: #遍历字典,可以得到字典的key
if name == i: #遍历字典获取key 然后通过key和输入的值判断
print(favorite_places[name])
break
sign += 1
if sign == len(favorite_places):
print('找不到该人信息')
'''
输出为
请输入姓名:张三
['上海', '北京', '深圳']
'''
range()函数
Python中range() 函数返回的是一个整数序列的对象,一般用在 for 循环中。
函数语法
range(start, stop, step)
参数说明:
start: 计数从 start 开始。默认是从 0 开始。例如range(5)等价于range(0, 5);
end: 计数到 end 结束,但不包括 end。例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5
step:步长,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1)
例如:list(range(1, 11)) # 从 1 开始到 11 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
list(range(0, 30, 5)) # 步长为 5 [0, 5, 10, 15, 20, 25]
推导式
1、列表推导式
list01 = [] #声明一个空列表
for i in range(3,10): #遍历数字序列
if i % 2 == 0:
list01.append(i) #将遍历得内容添加到列表当中
print(list01) #输出为[4, 6, 8]
#两种方式等价
list03 = [i for i in range(3,10) if i % 2 == 0] #简写方式
print(list01) #输出为[4, 6, 8]
2、字典推导式
list02 = ['joe','susan','black']
print(list(enumerate(list02))) #输出为[(0, 'joe'), (1, 'susan'), (2, 'black')]
#enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。
dict01 = {k:v for k,v in enumerate(list02)}
print(dict01) #输出为{0: 'joe', 1: 'susan', 2: 'black'}
dict01 = {'name':'joe','age':'18'}
print(list(dict01.items())) #输出为[('name', 'joe'), ('age', '18')]
for k,v in dict01.items(): #items将字典中的键值对转化为元组的形式
print(k,v ) #输出为 name joe
# age 18
3、嵌套列表推导式
names=[['Tom','Billy','Jefferson','Andrew','Wesley','Joe'],
['Alice','Jill','Ana','Wendy','Jennifer','Eva']]
print(names[0][0])
list04 = []
for i in names:
for n in i :
if len(n) <= 4:
list04.append(n)
print(list04) #输出为['Tom', 'Joe', 'Jill', 'Ana', 'Eva']
lsit04 = [n for i in names for n in i if len(n) > 4]
print(lsit04) #输出为['Billy', 'Jefferson', 'Andrew', 'Wesley', 'Alice', 'Wendy', 'Jennifer']