1、选择结构
1)、单分支结构----if 语句
当条件表达式成立,则执行代码块,执行完代码块继续往下执行;当条件表达式不成立,则直接跳过代码块执行后面的语句;
注意:在python中没有区分代码块的{},在python中代码块的区分是用缩进来表示。
'''
语法结构:
if 条件表达式:
代码块
'''
age = int(input('请输入你的年龄:'))
if age >= 18:
print("成年了")
2)、双分支结构----if-else语句
当条件表达式成立,则执行if后面的代码块1;当条件表达式不成立,则执行else后面的代码块2;
#双分支结构
'''
if 条件表达式:
代码块1
else:
代码块2
'''
age1 = int(input('请输入你的年龄:'))
if age1 >= 18:
print("成年了")
else:
print("未成年")
3)、多分支结构----if-elif-else
当条件表达式1成立,则执行if后面的代码块1;当条件表达式1不成立,则判断条件表达式2是否成立,成立则执行elif后面的代码块2;当以上条件都不成立,则执行else后面的代码块N+1。
这些条件表达式和代码块是一个整体,当其中一个条件成立,后续的条件就不再判断了。(该结构最后面的else可根据实际情况省略)
#多分支结构
'''
if 条件表达式1:
代码块1
elif 条件表达式2:
代码块2
elif 条件表达式N
代码块N
[else:]
代码块N+1
'''
score = int(input("请输入你的成绩:"))
if score >= 90:
print("A")
elif score >= 80:
print("B")
elif score >= 70:
print("C")
elif score >= 60:
print("D")
else:
print("F")
4)、三目运算符
三目运算符相当于if的双分支结构的缩写形式。格式:结果1 if 条件 else 结果2
结果1:条件成立时返回的结果
结果2:条件不成立时返回的结果
示例:求三个数值之间的最大值
#示例:求三个数值之间的最大值
num1 = int(input("请输入第一个整型数据:"))
num2 = int(input("请输入第二个整型数据:"))
num3 = int(input("请输入第三个整型数据:"))
#使用if分支实现
if num1 > num2:
# num1大
if num1 > num3:
print(f'num1 = {num1}最大')
else:
print(f'num3 = {num3}最大')
else:
# num2大
if num2 > num3:
print(f'num2 = {num2}最大')
else:
print(f'num3 = {num3}最大')
#使用三目运算符实现
second_max = num1 if num1>num2 else num2
max = second_max if second_max> num3 else num3
5)、if嵌套
score = int(input("请输入你的成绩:"))
if score <= 100:
if score >= 90:
print("A")
elif score >= 80:
print("B")
elif score >= 70:
print("C")
elif score >= 60:
print("D")
else:
print("F")
else:
print("输入的成绩非法!")
2、循环结构
python的循环语句包括while、for-in、for-else,和c++不同,python中没有do-while语句。
1)、while循环
'''
语法结构:
while 条件表达式:
循环体语句
'''
#求1-10之间的和
i = 0
sum = 0
while i<=10:
i = i + 1
sum += i
print(f'sum = {sum}')
2)、for-in
下面代码会从0-9,共循环10次,这个range(0,10),其实是相当于产生一个从0-9的列表,每循环一次,就会把列表里的下一个元素取出来给临时变量i。
备注:range是一个内置函数可以理解为一个范围的数如(0,10)表示0~9,采用左闭右开。
'''
格式:for 循环变量 in range函数
'''
for i in range(0,10):
print(i)
3)、for-else
for可以使用else从句,示例:
for i in range(0,10):
print(i)
else:
print("循环执行结束")
while和for对比:与for必须指定循环多少次不一样的是,while循环的次数可以是不定的,只要条件满足就可以永远循环下去。
while:一般用于不知道循环次数的情况下,使用while+break
for+range:一般都是在已知循环次数的条件下使用
'''
while 条件: #只要条件为真,就不断循环
print(xxxxx)
'''
#死循环
count = 0
while True:
print(f"第{count}次循环")
count +=1
4)、range函数
用于生成一个整数序列。语法格式:range(start,stop, step)
参数说明:
start:可选参数,表示序列的起始值,默认为 0。
stop:必需参数,表示序列的结束值(不包含该值)。
step:可选参数,表示序列中的元素之间的步长,默认为 1。
使用方式:
#(1)range(stop):创建一个(0,stop)之间的整数序列,步长为1
# 生成从0到4的整数序列
sequence = range(5)
print(list(sequence)) # 输出: [0, 1, 2, 3, 4]
#(2)range(start,stop):创建一个(start,stop)之间的整数序列,步长为1
# 生成从2到6的整数序列
sequence = range(2, 7)
print(list(sequence)) # 输出: [2, 3, 4, 5, 6]
#(3)range(start,stop,step):创建一个[start,stop)之间的整数序列,步长为step
# 生成从1到10,步长为2的整数序列
sequence = range(1, 11, 2)
print(list(sequence)) # 输出: [1, 3, 5, 7, 9]
range的注意点:
(1)、它表示的是左闭右开区间;
(2)、它接收的参数必须是整数,可以是负数,但不能是浮点数等其它类型;
(3)、它是不可变的序列类型,可以进行判断元素、查找元素、切片等操作,但不能修改元素
(4)、它是可迭代对象,却不是迭代器。
3、contine和break
1)、continue的语法作用是,只要程序一遇到continue,本次循环就不继续了,直接进入下一次循环
需求:一栋楼有5层,每层2间房,遇到第三层时,不打印任何房间号,其他层都打印
for i in range(1,6):
for j in range(1,3):
if i==3:
continue
print(f"{i}层-{i}0{j}室")
2)、break的语法作用是,只要程序遇到break,就会结束当前这个循环,注意如果是多层嵌套循环,只结束当前这一层的循环。
for i in range(1,6):
for j in range(1,3):
if i==3:
continue #跳过第三层,从第四层开始
if i==2 and j==2:
break #当到2层2室的时候直接退出二层循环。从三层开始走
print(f"{i}层-{i}0{j}室")
4、随机模块---random
常用函数及其用法:
random(): 生成一个[0.0, 1.0)之间的随机浮点数。
randint(a,b):返回一个a到b之间的任意整数
randrange([start,], stop [,step]):生成一个[start, stop)之间以step为步长的随机整数。
uniform(a,b):生成一个[a, b]之间的随机浮点数。
#随机数模块
#1、导入模块
import random
# 生成0到10之间的随机整数(包括0和100)
print(random.randint(0, 100))
# 生成1到10之间(不包括100)的随机整数
print(random.randrange(1, 100))
# 生成0到1之间的随机浮点数(不包括1)
print(random.random())
# 生成1到3之间的随机浮点数
print(random.uniform(1, 10))