目录
一. 判断语句
(一)布尔类型和比较运算符
(二)if语句
1.if语句的基本格式
if 要判断的条件:
条件成立时,要做的事情
注意:
- 判断条件的结果一定是布尔类型;
- 不要忘记判断条件后的:冒号
- 归属于if语句的代码块,需要在前方填充4个空格缩进
练习:
print ("欢迎来到儿童游乐场,儿童免费,成人收费")
age=int(input("请输入你的年龄:"))
if age>18:
print("您已成年,游玩需要补票10元")
print("祝您游玩愉快")
2. if else 语句
- if和其代码块,条件满足时执行
- else搭配if的判断条件,当if条件不满足时执行
- else的代码块,同样要4个空格作为缩进
- else后面也需要加冒号:
练习:
print ("欢迎来到动物园")
height=int(input("请输入你的身高(cm):"))
if height>120:
print("您的身高超出120cm,游玩需要购票10元")
else:
print("您的身高未超出120cm,可以免费游玩")
print("祝您游玩愉快")

3. if elif else语句
- 可以完成多个条件的判断
- elif可以写多个
- 判断是互斥且有序的,上一个满足后面就不会判断了
- 可以在条件判断中,直接写input语句,节省daimaliang
- elif判断是互斥且有顺序的,满足第一个elif就不会理会第二个,满足2就不会理会3,都不满足就进入else,else可以省略,效果等同于3个独立的if判断
练习:
if int(input("请输入第一次猜想的数字:"))==10:
print("恭喜你猜对啦")
elif int(input("不对,再猜一次:"))==10:
print("恭喜你猜对啦")
elif int(input("不对,最后再猜一次:"))==10:
print("恭喜你猜对啦")
else:
print("sorry,全部猜错啦,我想的是10")

(三)判断语句的嵌套
1.嵌套语句可以用于多条件、多层次的逻辑判断
2.一定注意空格缩进,python通过空格缩进来决定层次关系
3.外层if满足条件时,才会执行内层if判断
案例:定义一个数字(1~10,随机产生),通过3次判断来猜出数字
案例要求:1)数字随机产生,范围1-10;
2)有三次机会猜数字,通过3层嵌套判断实现;
3)每次猜不中,会提示大了或小了
提示:通过如下代码,可以定义一个变量num,变量内存储随机数字
import random
num=random.randint(1,10)
演示:
import random
num=random.randint(1,10)
number1=input("请输入你猜测的数字(只有三次机会哦):")
if int(number1)!=num:
if int(number1)<num:
print("小了")
elif int(number1)>num:
print("大了")
number2=input("再猜一次:")
if int(number2)!=num:
if int(number2)<num:
print("小了")
elif int(number2)>num:
print("大了")
number3=input("最后一次机会啦,再猜一次:")
if int(number3)!=num:
if int(number3)<num:
print("小了")
elif int(number3)>num:
print("大了")
print("很遗憾,你三次都答错了")
else:
print("恭喜你答对了!")
else:
print("恭喜你第二次就答对啦")
else:
print("恭喜你一次就猜对了!")
也可以if==num,else去判断大了小了,在else中嵌套

二. 循环语句
(一)while循环
1.语法格式
while 条件:
条件满足时,做的事情1
条件满足时,做的事情2
条件满足时,做的事情3
...(省略)...
2.while循环的注意事项
- 条件需提供布尔类型结果,true继续,falset停止
- 空格缩进不能忘
- 请规划好循环终止条件,否则将无限循环
3.案例
案例1:求1-100的和
i=0
a=i
while i<100:
i+=1
a=a+i #也可以写成 a+=i
print(a)
案例2:猜数字
设置一个范围1-100的随机整数变量,通过while循环,配合input语句,判断输入的数字是否等于随机数
- 无限次机会,直到猜中为止
- 每一次猜不中,会提示大了或小了
- 猜完数字后,提示猜了几次
- 提示:无限次机会,终止条件不适合数字累加来判断,可以考虑布尔类型本身(True or False)
方法一:
import random
num=random.randint(1,100)
number=input("请输入您猜测的数字,在1到100之间:")
i=0
while int(number)!=num:
if int(number)>num:
print("大了")
else:
print("小了")
i+=1
number=input("再猜一次:")
i=i+1
print(f"恭喜您猜对啦!您一共猜了{i}次")

方法二:
import random
num=random.randint(1,100)
print(num)
count=0
flag=True
while flag:
count+=1
number=int(input("请输入您猜测的数字:"))
if number==num:
print(f"恭喜你,答对啦!您一共答了{count}次")
flag=False
else:
if number<num:
print("小了")
else:
print("大了")
--补充知识 print 输出不换行
默认自动换行
输出不换行:在print语句中,加上end=‘ ’
print("泥嚎,我叫",end='')
print("窝嚎")

--补充知识:制表符 \t
- \t效果等同于在键盘上按下 tab键
- 作用:可以让对行字符串进行对齐
print("泥嚎呀 我叫窝嚎")
print("窝嚎 泥叫泥嚎")
print("泥嚎呀\t我叫窝嚎")
print("窝嚎\t泥叫泥嚎")
print("Hello\tworld")
print("Hi\tworld")

4.while循环的嵌套应用
练习案例:打印九九乘法表
i=1
while i<=9:
j=1
while j<=i:
print(f"{i}x{j}={i*j}\t",end='')
j+=1
i+=1
print()

(二)for循环
1.语法格式
for 临时变量 in 待处理数据集(序列类型)
循环满足条注意件时执行的代码
序列类型:其内容可以一个个依次取出的一种类型(字符串、列表、元组等)
示例:
name='泥嚎'
for x in name:
print(x)

2.for循环注意事项
- 无法定义循环条件,只能被动取出数据处理
- 循环内的语句,要有空格缩进
3.案例
数一数有几个a:定义字符变量name,内容为:"cats are so cute",通过for循环,遍历此字符串,统计有多少个英文字母“a"
sentence='cats are so cute'
i=0
for x in sentence:
if x=='a':
i+=1
print(f"句子里面'a'的个数为{i}")

4.range 语句
(1)功能:获得一个数字序列
(2)语法格式:
语法1:range(num)
语法2:range(num1,num2)
语法3:range(num1,num2,step)
(3)range语句的注意事项:
- 语法1从0开始,到num结束(不含num本身)
- 语法2从num1开始,到num2结束(不含num2本身)
- 语法3从num1开始,到num2结束(不含num2本身),步长以step为准
(4)示例
for x in range(10,20,2):
print(f"{x}\t",end='')

- 也可以用来控制for循环的循环次数
for x in range(6):
print("泥嚎呀,我叫窝嚎!")

(5)练习案例
定义一个数字变量num,内容随意,并使用range()语句,获取从1到num的序列,使用for循环遍历它,在遍历的过程中,统计有多少偶数出现
num=6
count=0
for x in range(1,num+1): #range语句序列不包含右边的数字,故+1
if x%2==0 and x!=1:
count=count+1
print(f"从1到{num}有{count}个偶数")

5.变量作用域
(1)for循环中的临时变量,其作用域定为:循环内
(2)这种限定:
- 是编程规范的限定,而非强制限定
- 不遵守也能正常运行,但不建议这样做
- 如果访问临时变量,可以预先在循环外定义它

图源b站黑马程序员
6.for循环的嵌套使用
(1)注意事项:
- 需要注意缩进,嵌套for循环同样通过缩进确定层次关系、
- for循环和while循环可以相互嵌套使用
(2)练习案例:
通过for循环,输出九九乘法表
j=1
for i in range(1,10):
for j in range(1,i+1):
print(f"{i}x{j}={i*j}\t",end='')
print()

7.循环中断:break and continue
(1)continue的作用是:
中断所在循环的当次执行,直接进入下一次
(2)break的作用是:
直接结束所在的循环
(3)注意事项:
- continue和break,在for和while循环中作用一致
- 在嵌套循环中,只能作用在所在循环上,无法对上层循环起作用
8.综合案例
- 某公司,账户余额有1W元,给20名员工发工资。
- 员工编号从1到20,从编号1开始,依次领取工资,每人可领取1000元领工资元。
- 领工资时,财务判断员工的绩效分(1-10)(随机生成),如果低于5,不发工资,换下一位
- 如果工资发完了,结束发工资。
提示:使用循环对员工依次发工资;continue用于跳过员工,break直接结束发工资;
import random
balance=8000
for x in range(1,21):
grade=random.randint(1,10)
if balance==0:
print("公司余额不足,无法继续发放工资")
break
print(f"员工{x}",end='')
if grade<5:
print(f"绩效分为{grade},不达标,不发工资")
continue
else:
print(f"绩效分为{grade},达标,发1000元工资")
balance-=1000

1万+

被折叠的 条评论
为什么被折叠?



