学python第十七弹 循环
学习之前,我们先解决上次的习题。
测试题
1 运行这个程序会得到什么输出:
my_number = 7
if my_number <20:
print(' Under 20')
else:
print('20 or over')
Under 20
2 基于第一个问题中的程序,如果把 my_number 改为25,输出会是什么?
20 or over
3 要检查一个数是否大于 30 但小于 40 ,要用哪种 if 语句?
if number >30 and nummber <40
#或者可以
if 30<number<40
4 要检查用户输入的字母 ‘ Q’ 是大写还是小写,要使用哪种 if 语句?
answer = input('请输入字母Q,区分大小写:')
if answer == 'Q':
print('大写Q')
elif answer == 'q':
print('小写q')
动手试一试
1 一家商场在降价促销。如果购买金额低于或等于 10 元,会给 10% 的折扣,如果购买金额大于 10 元 ,会给 20%的折扣,编写一个程序,询问购买价格,在显示折扣和最终价格。
#打折促销程序
cost = float(input('请输入你的购买金额:'))
if cost <= 10:
print('给予你10%的折扣')
print('打折后的价格为:',cost*(1-0.1))
else:
print('给予你20%的折扣')
print('打折后的价格为:',cost*(1-0.2))
2 一个足球队在寻找年龄在 10 到 20岁之间的小女孩加入,编写一个程序,询问用户的年龄,性别,显示一条消息指出这个人是否可以加入球队。
注 :要建立合理的程序,如果不是女孩就暂停询问。
#筛选球队用户程序
sex = str(input('请输入你的性别:'))
if sex == '男':
print('你不满足要求,请退出')
elif sex == '女':
print('请在下面输入你的年龄')
age = int(input('请输入你的年龄:'))
if 10 <= age <= 20:
print('你可以加入球队')
else:
print('你不可以加入球队')
3 你在长途旅行,刚到一个加油站,距下一个加油站还有 200 km。编写一个程序确定是不是需要在这里加油,还是可以等到下一个加油站再加油,这个程序需要问下面这几个问题。
你的油箱有多大
油箱有多满(按比例)
你的汽车每升油可以走多远
#长途旅行加油程序
answer1 = int(input('请问你的油箱有多大(升):'))
answer2 = float(input('请问你的油箱有多满(按比例):'))
answer3 = float(input('请问你的汽车每升油能跑多远(km):'))
length = answer1*answer2*answer3
print('你的汽车还能在跑(km):',length)
if length >= 200:
print('你可以等到下一站再加油')
else:
print('你需要在这里加油')
结果如下:
======
请问你的油箱有多大(升):20
请问你的油箱有多满(按比例):0.1
请问你的汽车每升油能跑多远(km):60
你的汽车还能在跑(km): 120.0
你需要在这里加油
>>>
4 建立一个程序,用户必须输入密码才能使用这个程序。
#输入密码才能使用程序
password = int(input('请输入你的密码:'))
if password ==12345678:
print('你可以使用这个程序')
print('这是华氏温度转化为摄氏温度')
print('请输入华氏温度:',end = ' ')
F = float(input())
C = 5/9*(F-32)
print('摄氏度:',C )
else:
print('密码错误,请重新输入')
开始循环
计算机程序通常会周而复始的重复同样的步骤,这称为循环(Looping)。主要有两种类型的循环:
1 重复一定次数 的循环,称为计数循环。
2 重复直至发生某种情况时结束的循环,称为条件循环(conditional loop),因为只要条件为真,这种循环会一直持续下去。
计数循环
第一种循环称为计数循环,还可以称为 for 循环,因为很多语言(包括python)在程序中都是用 for 关键字来创建这种类型的循环。
下面我们就来尝试使用一下这个循环。
代码清单8-1 一个非常简单的 for 循环
#代码清单 8-1 一个非常简单的 for 循环
for looper in [1,2,3,4,5]:
print('hello')
运行这个程序:
=================== RESTART: D:/study/learn python/简单的 for.py ==================
hello
hello
hello
hello
hello
>>>
我们看看这是怎么做到的,
(1)变量 looper 的值从 1 开始(所以 looper = 1)
(2)对应列表中的每一个值,这个循环会把下一个指令块中的所有工作完成一次。
(3)每次执行循环时,变量 looper 会赋为这个列表中的下一个值。
第二行 (print (‘hello’))就是python每次循环时要执行的代码块。 for 循环需要一个代码块来告诉每次循环时做什么,这个代码块(缩进的带码块)称为循环体(body of the loop)。
每次循环称为一次迭代
#代码清单8-2 用 for 做不同的事
for looper in [1,2,3,4,5]:
print(looper)
运行结果如下:
=================== RESTART: D:/study/learn python/简单的 for.py ==================
1
2
3
4
5
6
8
>>>
这一次不再是打印 hello ,而是打印变量 looper 的值,每次循环时,looper 会取列表中的下一个值。
中括号做什么用
循环值的列表包围在中括号里, python 就是利用中括号以及数之间的逗号来建立列表(list)的,列表是一种容器,用来存放数的,也就是每一次循环迭代时 looper 所取的值。
使用计数循环
我们使用循环打印一个乘法表,
#代码清单 8-3 使用循环打印乘法表
for looper in [1,2,3,4,5,6,7,8,9]:
print(looper,'times 8 =', looper * 8)
运行结果如下:
=================== RESTART: D:/study/learn python/打印8的乘法表.py ==================
1 times 8 = 8
2 times 8 = 16
3 times 8 = 24
4 times 8 = 32
5 times 8 = 40
6 times 8 = 48
7 times 8 = 56
8 times 8 = 64
9 times 8 = 72
>>>
我们也可以打印九九乘法表
#代码清单 8-3 使用循环打印乘法表
for looper in [1,2,3,4,5,6,7,8,9]:
print(looper,'9*9乘法表 =', looper *1,looper*2,looper*3,looper*4, looper *5,looper*6,looper*7,looper*8,looper*9)
运行结果如下:
=================== RESTART: D:/study/learn python/打印8的乘法表.py ==================
1 9*9乘法表 = 1 2 3 4 5 6 7 8 9
2 9*9乘法表 = 2 4 6 8 10 12 14 16 18
3 9*9乘法表 = 3 6 9 12 15 18 21 24 27
4 9*9乘法表 = 4 8 12 16 20 24 28 32 36
5 9*9乘法表 = 5 10 15 20 25 30 35 40 45
6 9*9乘法表 = 6 12 18 24 30 36 42 48 54
7 9*9乘法表 = 7 14 21 28 35 42 49 56 63
8 9*9乘法表 = 8 16 24 32 40 48 56 64 72
9 9*9乘法表 = 9 18 27 36 45 54 63 72 81
range() -一条捷径
在上面的例子中,我们只循环了 5 次,但是如果我们希望循环运行 100次 或 1000 次尼,这就是键入很多的数! 这里我们就可以使用 range() 函数,你可以只输入起始值和结束值,他就会为你创建 二者之间 的所有值。range() 会创建一个列表,其中包含某个范围的数。
for looper in range(1,5):
print(looper,'8的乘法表=',looper*8)
结果如下:
================ RESTART: D:/study/learn python/8的range()乘法表.py ================
1 8的乘法表= 8
2 8的乘法表= 16
3 8的乘法表= 24
4 8的乘法表= 32
这里好像少了一个 5*8=40
答案在于,range(1,5) = [1,2,3,4]
range(1,6)=[1,2,3,4,5]
循环变量名
编程中有一个惯例,通常使用字母 i, j, k 等作为循环变量。
由于很多人使用 i , j , k 作为循环变量,程序员在程序中也习惯了这种用法,所以,除了循环变量, i , j,k 不应该有其他用途。
如果采用这个惯例,程序就会改写成下面这样。
for i in range(1,5):
print(i,'8的乘法表=', i*8)
range()的简写
for i in range(5):
for i in range(0,5):
这两个是完全相同的,同样会提供([0,1,2,3,4])
今天跟新到这里。
本文通过实例讲解Python中的for循环和条件循环,涵盖打折促销、球队筛选、长途旅行加油及密码验证,演示了如何运用循环进行重复操作和条件判断。
1772

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



