Python循环语句的使用

为什么需要

  • 人是懒惰的,因为同样的事情我们不愿意去反反复复的做
  • 人是聪明的,因为我们可以利用其中的规律,利用循环来解决反复的问题,解放生产力

for 循环

如果我们知道要在一个什么样子的容器中进行循环,那么我们可以使用for循环

"""
利用for循环进行输出
Author: Cyberist
"""
container = [1,2,3,4,5,6]
for i in container:
    print(i)

在这里container是一个列表(之后会讲),即一个特定的容器,我们知道这个容器的特定范围,采用for循环, i 是container中的迭代对象,每一次循环,i都会变成container中的下一个

while循环

如果我们不知道具体要运行多少次,可以采用while循环,当产生bool值为False或者满足某条件break的时候,停止循环。下面我们利用while循环以及之前学过的if语句来做一个简单的猜数字游戏

"""
Author: Cyberist
"""
import random  # 导入随机库,可以产生随机数
num = random.randint(0,9)
input_num = int(input("Please input a word to guess the right number: "))
while 1:
    if num== input_num:
        print("You are right! Want to have another try(y/n): ")
        answer = input()
        if answer in ["y", "Y"]:
            num = random.randint(0,9)
            input_num = int(input("Please input a word to guess the right number: "))
        else:
            print("Game over ! ")
            break
    else:
        print("The answer you input is not the right one, please try again(q to quit): ")
        an = input()
        if an in ["q", "Q"]:
            break
        else:
            input_num = int(an)

break continue

while循环和for中可以使用continue和break两个条件跳转他们之间的差别是:

  • continue: 运行该处时,程序继续进行循环,但是不在进行下面的操作,跳到下一次循环

练习



1. 利用循环打印九九乘法表
"""
Author: Cyberist
"""
for i in range(1,10):
 for j in range(1,i+1):
     print(i*j, end="\t")
 print("")

range( ) 函数可以产生从 [a, b] 的序列,但是不包括 b range(a)产生从0-a 的序列,步长为1 range(a,b)产生从a-b的序列,步长为1 range(a,b,c)产生从a-b的序列,步长为 c

2. 水果价格查询

有4种水果,单价分别是3.00、2.50、4.10、10.20元/千克。首先在屏幕上显示如下菜单:
[1] 苹果
[2] 梨
[3] 橘子
[4] 葡萄
[0] 退出
请输入序号: 然后用户输入序号查询水果价格。 每次运行程序可以连续查询4次,即:程序输出用户所选水果的单价后自动回到菜单让用户继续查询,当用户用完4次查询机会就自动退出结束运行。但是,任何时候用户都可选择0来主动退出。

"""
Author: Cyberist
"""
# 上机作业第三题
prompt= \
    """
[1] 苹果
[2] 梨
[3] 橘子
[4] 葡萄
[0] 退出
    """
times = 4
print(prompt)
choice = input("请输入序号进行查询: ")
while choice !='0':
    if choice == '1':
        print("苹果 3.00 元/kg")
    elif choice == '2':
        print("梨 2.50 元/kg")
    elif choice == '3':
        print("橘子 4.10 元/kg")
    elif choice == '4':
        print("葡萄 10.20 元/kg")
    else:
        print("输入不合法,重新输入")
        break
    times -= 1
    if times == 0:
        print("次数使用完! 按Enter退出...")
        input()
        break
    input("再次输入请按Enter...")
    print(prompt)
    choice = input("请输入序号进行查询: ")