#判断语句if
##单分支
语法
"""
if 条件:
代码块
1.冒号必须是英文状态下
2.必须要缩进
"""
执行流程
代码
"""
eval(字符串)
1.把字符串转换成int类型
a = eval("10")
print(a) #10
print(type(a)) #<class 'int'>
2.对字符串进行计算
a = "3*2"
print(a) #3*2
b = eval(a)
print(b) #6
"""
#input("请猜一个数字") ---Str
#eval() 把Str转换成int
guess = eval(input("请猜一个数字"))
if guess ==99:
print("恭喜你猜对了") #恭喜你猜对了
##二分支
语法
"""
if 条件:
代码块
else:
代码块
"""
执行流程
代码
guess = eval(input("请猜一个数字"))
if guess == 99:
print("恭喜你猜对了")
else:
print("谢谢惠顾")
##多分支
语法
"""
if 条件:
代码块
elif 条件:
代码块
elif 条件:
代码块
........
else:
代码块
"""
执行流程图
代码
score = eval(input("请输入一个成绩:"))
if score >= 90:
print("a")
elif 90 > score>=80:
print("B")
elif 80 >score>=70:
print("C")
elif 70>score>=60:
print("D")
else:
print("不及格")
#三目运算符
语法
满足条件的代码块 if 条件 else 不满足条件的代码块
执行流程
代码
guess = eval(input("请猜一个数字"))
"""
三目运算符
if的缩写
满足条件的代码块 if 条件 else 不满足条件的代码块
"""
print("恭喜你,猜对了")if guess == 99 else print("谢谢惠顾")
注意
-
必须是二分支语句
##条件判断以及组合
操作符 | 数学符号 | 描述 |
< | < | 小于 |
<= | ≤ | 小于等于 |
>= | ≥ | 大于等于 |
> | > | 大于 |
== | = | 等于 |
!= | ≠ | 不等于 |
操作符及使用 | 描述 |
x and y | 两个条件x和y的逻辑与 |
x or y | 两个条件x和y的逻辑或 |
not x | 条件x的逻辑非 |
练习
分类 | 国际**BMI值** (kg/m^2**)** | 国内**BMI值** (kg/**m^2)** |
偏瘦 | <18.5 | <18.5 |
正常 | 18.5 ~ 25 | 18.5 ~ 24 |
偏胖 | 25 ~ 30 | 24 ~ 28 |
肥胖 | ≥30 | ≥28 |
公式:BMI = 体重 (kg) / 身高2 (m2)
需求:按照国内指标,输入一组数据,判断是胖是瘦
#循环语句for
语法
"""
for 变量 in 遍历结构:
代码块
"""
执行流程
用法
字符串遍历
Str = "hello python"
for i in Str:
print(i)
"""
h
e
l
l
o
p
y
t
h
o
n
"""
列表遍历
list01 = ["赵丽颖","舒畅","戚薇","朱梓骁"]
for i in list01:
print(i)
"""
赵丽颖
舒畅
戚薇
朱梓骁
"""
字典遍历
dict01 = {"天龙八部":"段誉","倚天屠龙记":"张无忌","九阴真经":"周芷若","射雕英雄传":"郭靖"}
"""
1.用普通遍历,只能打印key
天龙八部
倚天屠龙记
九阴真经
射雕英雄传
"""
for i in dict01:
print(i)
"""
2.字典.items() 返回一个元组("天龙八部","段誉")
('天龙八部', '段誉')
<class 'tuple'>
('倚天屠龙记', '张无忌')
<class 'tuple'>
('九阴真经', '周芷若')
<class 'tuple'>
('射雕英雄传', '郭靖')
<class 'tuple'>
"""
for t in dict01.items():
print(t)
print(type(t))
"""
3.获取单独的key和value,就是想办法把元组拆分,返回基本数据类型
把元组赋值给两个变量
天龙八部
<class 'str'>
段誉
<class 'str'>
"""
for k,v in dict01.items():
print(k)
print(type(k)) #Str
print(v)
print(type(v)) #Str
Set集合遍历
set01 = {1,2,3,4}
for i in set01:
print(i)
#无限循环(while)
语法
"""
while 条件:
变量改变公式
代码块
"""
代码
a = 10
while a>0:
#变量不断改变,为了满足条件,避免进入死循环
a -= 1
print(a)
break continue
break跳出并结束当前整个循环,不执行循环后的语句
continue结束当次循环,继续执行后续次数循环
执行流程
代码
for i in [1,2,3,4,5]:
if i==2:
break
print(i) #1
for i in [1,2,3,4,5]:
if i==2:
continue
print(i) #1
"""
1
3
4
5
"""
循环加else
语法
"""
for 变量 in 遍历结构:
代码块
else:
代码块
"""
执行流程
"""
1.先执行完for循环
2.执行完以后执行else
"""
代码
for i in [1,2,3,4,5]:
print(i)
else:
print("循环结束")
同理,while能不能加else,可以,和上面一样
while语法
while <条件> :
<语句块1>
else :
<语句块2>
#循环结束后,会执行else的代码
function 方法
*代表可以接受多个数据
def func_sum(x,*y):
#定义一个sum01变量接收求和
sum01 = x
#由于y是多个数据,所以利用for循环获取数据
for i in y:
# sum01 = sum01 +i
sum01 += i
#要和,要等相加完成之后在输出,所以要for循环束
return sum01
练习
"""
2. 定义一个函数,传入一个列表[1,2,3,4,5,6,7],把列表中的奇数返回,返回一个新的列表
list01 = [1,2,3,4,5,6,7]
l = func_ji(list01)
print(l) #[1, 3, 5, 7]
"""
#定义一个函数,传入一个列表
def func_ji(list01):
list02 = []
#把列表中的奇数返回
for i in list01:
if i%2 == 1:
list02.append(i)
#返回一个新的列表
return list02
# 定义一个函数,传入用户id
def func_if(id):
#获取id的长度
length01 = len(id)
#length01 > 5 比较运算符,本身就会返回Ture False
return length01 > 5
id = "YJ123409"
print(func_if(id)) #True
#定义一个函数,统计字符串
def func_count(Str):
num = 0
zimu = 0
kongge = 0
other = 0
for i in Str:
#判断是否是数字
if i.isdigit():
num += 1
#判断是否是字母
elif i.isalpha():
zimu += 1
#判断是否是空格
elif i.isspace():
kongge += 1
else:
other += 1
return num,zimu,kongge,other
Str = "I love,you 1314"
"""
等号右边有四个值,等号左边要有四个变量
a,b,c = 10,"张三",[1,2,3,4]
a =10
b = "张三"
c = [1,2,3,4]
"""
a,b,c,d = func_count(Str)
print(a)
print(b)
print(c)
print(d)
"""
4
8
2
1
"""