第三章 if语句
bool类型
两种:True和False
bool_1 = True
bool_2 = False
print(f"bool_1变量的内容是:{bool_1}," + f"类型是:{type(bool_1)}")
print(f"bool_2变量的内容是:{bool_2}," + f"类型是:{type(bool_2)}")# python中字符串可以直接比较
result = "itcast" == "itheima"
print(f"result变量的内容是:{result}," + f"类型是:{type(result)}")
if else语句
age = int(input("请输入你的年龄:"))if age >= 18 :print("您已成年,需要买票10元")
else:print("您未成年,可以免费游玩")
print("祝您游玩愉快")
输入20:
输入15:
练习案例:我要买票吗?
print("欢迎来到黑马动物园。")
high = int(input("请输入你的身高(cm):"))if high >= 120 :print("您的身高超出120cm,游玩需要购票10元。")
else:print("您的身高未超出120cm,可以免费游玩。")
print("祝您游玩愉快")
输入:130
输入:111
if elif else语句
print("欢迎来到黑马动物园。")if int(input("请输入你的身高(cm):")) < 120 :print("欢迎你小朋友,可以免费游玩。")
elif int(input("请输入你的VIP等级(1-5):")) >3:print("您的VIP等级高于3级,可以免费游玩。")
elif int(input("请告诉我今天几号:")) == 1:print("今天是1号免费日,可以免费游玩。")
else:print("不好意思,条件都不满足,需要买票10元")
练习案例:猜猜心里数字
target_num = 10if int(input("请输入第一次猜想的数字:")) == 10 :print("猜对啦!")
elif int(input("不对,再猜一次:")) == 10:print("猜对啦!")
elif int(input("不对,再最后猜一次:")) == 10:print("猜对啦!")
else:print(f"Sorry,全部猜错啦,想的是{target_num}")
判断语句的嵌套使用
公司要发礼物,条件是:
1.必须是大于等于18岁小于30岁的成年人
2.同时入职时间需满足大于两年,或者级别大于3才可领取
age = int(input("请输入您的年龄:"))
if age >= 18 :if age < 30:year = int(input("请输入您的入职时间:"))if year > 2:print("快来领取礼物吧!")else:level = int(input("请输入您的级别(1-5):"))if level > 3 :print("快来领取礼物吧!")else:print("Sorry,年龄符合,但入职时间和级别都不符合,不可领取礼物")
else:print("Sorry,未成年不可领取礼物")
判断语句综合案例
案例需求:
定义一个数字(1~10,随机产生),通过3次判断来猜出来数
案例要求:
1.数字随机产生,范围1-10
2.有3次机会猜测数字,通过3层嵌套判断实现
3.每次猜不中,会提示大了或小了
import random
num = random.randint(1,10)
guess_num = int(input("请输入第一次猜想的数字:"))
if guess_num == num :print("猜对啦!")
else:if guess_num > num :print("猜大啦!")else:print("猜小啦!")guess_num = int(input("请输入第二次猜想的数字:"))if guess_num == num:print("猜对啦!")else:if guess_num > num:print("猜大啦!")else:print("猜小啦!")guess_num = int(input("请输入第三次猜想的数字:"))if guess_num == num:print("猜对啦!")else:if guess_num > num:print("猜大啦!")else:print("猜小啦!")
第四章 循环
while循环
while基本用法
案例一:求1-100的和
i = 1
sum = 0
while i < 101:sum += ii += 1
print(f"1到100的和为{sum}")
1到100的和为5050
案例二:猜中1-100内的数字
import random
num = random.randint(1,100)
# 记录猜测次数
count = 1
# 判断循环是否继续的标志
flag = Truewhile flag:guess_num = int(input("请输入你猜的数字:"))if guess_num == num:flag = 0else:if guess_num < num:print("你猜小了")else:print("你猜大了")count += 1
print(f"你猜对了!你一共猜了{count}次")
请输入你猜的数字:59
你猜大了
请输入你猜的数字:25
你猜小了
请输入你猜的数字:37
你猜小了
请输入你猜的数字:45
你猜大了
请输入你猜的数字:38
你猜小了
请输入你猜的数字:40
你猜小了
请输入你猜的数字:43
你猜大了
请输入你猜的数字:41
你猜对了!你一共猜了8次进程已结束,退出代码为 0
while的嵌套
案例三:打印9*9乘法表
# 控制行数并且控制第二个数
i = 1
# 打印九行
while i < 10:# j控制第一个数j = 1while j <= i:print(f"{j}*{i}={j * i}\t", end = '')j += 1i += 1# 这就是输出一个换行的意思print()
注意:
控制print的方法:
(1)不输出换行 print(" ", end = '')
(2)只输出换行 print()
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
1*4=4 2*4=8 3*4=12 4*4=16
1*5=5 2*5=10 3*5=15 4*5=20 5*5=25
1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49
1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64
1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81 进程已结束,退出代码为 0
案例四:表白100天,每天都送10朵玫瑰花
i = 1
while i < 101:print(f"今天是给小可送花的第{i}天")j = 1while j < 11:print(f"给小可送的第{j}朵花")j += 1i += 1print("小可,我喜欢你!")
print(f"坚持到第{i-1}天,表白成功")
# 截取部分 今天是给小可送花的第100天 给小可送的第1朵花 给小可送的第2朵花 给小可送的第3朵花 给小可送的第4朵花 给小可送的第5朵花 给小可送的第6朵花 给小可送的第7朵花 给小可送的第8朵花 给小可送的第9朵花 给小可送的第10朵花 小可,我喜欢你! 坚持到第100天,表白成功
for循环
形式
for 临时变量 in 待处理数据集(序列):
循环满足条件时的代码
注意:临时变量作用域限定在循环内,但不遵守该规则程序也能运行,只是说不规范
基本用法
遍历字符串
name = "itheima"
for x in name:# 将name的内容,逐个取出赋予x临时变量# 在循环体内对x进行处理print(f"{x}")
i
t
h
e
i
m
a进程已结束,退出代码为 0
案例:数一数字符串里有几个a
# 统计a的个数
count = 0
name = "itheima is a brand of itcast"
for x in name:if x == 'a':count += 1print(f"{name}中共含有:{count}个字母a")
itheima is a brand of itcast中共含有:4个字母a
range配合使用
三种语法
语法一:range(num)
描述:从0开始,到num结束(不包含num),数字间隔为1逐个取出
for x in range(10):# 从0开始,到10结束(不包含10),数字间隔为1逐个取出print(f"{x} ", end = '')
0 1 2 3 4 5 6 7 8 9
进程已结束,退出代码为 0
语法二:range(num1, num2)
描述:从num1开始,到num2结束(不包含num2),数字间隔为1逐个取出
for x in range(1,10):# 从1开始,到10结束(不包含10),数字间隔为1逐个取出print(f"{x} ", end = '')
1 2 3 4 5 6 7 8 9
进程已结束,退出代码为 0
语法三:range(num1, num2, step)
描述:从num1开始,到num2结束(不包含num2),数字间隔为step逐个取出
for x in range(0,10,2):# 从0开始,到10结束(不包含10),数字间隔为2逐个取出print(f"{x} ", end = '')
0 2 4 6 8
进程已结束,退出代码为 0
案例一:1到num有几个偶数
import random
num = 100
count = 0
for x in range(1,num):if x%2==0:count += 1
print(f"1到{num} (不含{num}本身)范围内,共有{count}个偶数", end = '')
1到100 (不含100本身)范围内,共有49个偶数
进程已结束,退出代码为 0
案例二:表白100天,每天都送10朵玫瑰花
i = 0
for i in range(1,101):print(f"今天是给小可送花的第{i}天")j = 0for j in range(1,11):print(f"给小可送的第{j}朵花")print("小可,我喜欢你!")
print(f"坚持到第{i}天,表白成功")
今天是给小可送花的第100天
给小可送的第1朵花
给小可送的第2朵花
给小可送的第3朵花
给小可送的第4朵花
给小可送的第5朵花
给小可送的第6朵花
给小可送的第7朵花
给小可送的第8朵花
给小可送的第9朵花
给小可送的第10朵花
小可,我喜欢你!
坚持到第100天,表白成功
案例三:打印9*9乘法表
# 控制行数并且控制第二个数
i = 1
# 打印九行
for i in range(1,10):# j控制第一个数j = 1while j <= i:print(f"{j}*{i}={j * i}\t", end = '')j += 1# 这就是输出一个换行的意思print()
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
1*4=4 2*4=8 3*4=12 4*4=16
1*5=5 2*5=10 3*5=15 4*5=20 5*5=25
1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49
1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64
1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81 进程已结束,退出代码为 0
continue和break:
continue会跳出本次循环,break会跳出本层循环