【Python讲义】WEEK 4

写在前面:

本系列文章收录:CAU计算机类公选课《Python语言程序设计》的课堂讲义
课程时间为:2022~2023学年秋季
供各位小白参考~

循环结构

类别:

(1)计数循环:重复一定的次数的循环。比如for循环

(2)条件循环:一直重复,直到条件不满足时才结束的循环。比如while循环。

1.while循环

语法结构:

while 条件表达式:

       循环体

循环体:一组被重复执行的语句。

【示例】重要的事情,说三遍。

i = 0

while i < 3:

    print("小朋友,你喜欢我嘛?请不要骗我哟!")

    i += 1

   

运行结果:

小朋友,你喜欢我嘛?请不要骗我哟!

小朋友,你喜欢我嘛?请不要骗我哟!

小朋友,你喜欢我嘛?请不要骗我哟!

【示例】取款机输入密码模拟。

password = 0

i = 1

while i < 7:

    input_num_pwd = int(input("请输入一位数字密码:"))

    if input_num_pwd == password :

        print("密码正确,正在进入系统...")

        i = 8

    else:

        print(f"密码输入错误,你已经输错{i}次")

        i += 1

if i == 7:

print("你的卡已经被锁死,请和发卡行联系!")

运行结果:

请输入一位数字密码:2

密码输入错误,你已经输错1次

请输入一位数字密码:0

密码正确,正在进入系统...

2.for循环与range()函数

for循环适合于枚举、遍历序列以及迭代对象中的元素。

语法结构:

for 迭代对象 in 对象:

       循环体

说明:

(1)迭代对象用于保存读出的值

(2)对象为要遍历或迭代的对象,该对象为任何有序的序列对象,比如字符串,列表和元组等

(3)循环体为一组被重复执行的语句。

【示例】利用数值循环输出列表的值。

for item in ['pku','tsinghua','cau','fudan']:

print(item)

运行结果:

pku

tsinghua

cau

fudan

range()函数

range()函数功能:用于生成一系列连续的整数,多用于for循环语句。

语法结构:

range(start,end,step)

参数说明:

(1)start:用于指定计数的初始值,可以省略,如果省略,默认值为0;

(2)end:用于指定计数的结束值(但不包括该值,如range(7)得到的值0~6),此参数不能省略;即左闭右开。

(3)step:用于指定步长,若省略该参数,步长默认为1。

【示例】计算1~100的和。

result = 0

for i in range(1,101,1):

    result += i

print(f"1~100的和为{result}")

运行结果:

1~100的和为5050

【示例】遍历字符串:“八百标兵奔北坡,北坡炮兵并排跑,炮兵怕把标兵碰,标兵怕碰炮兵炮。”,统计有多少个“兵”。

str_1 = "八百标兵奔北坡,北坡炮兵并排跑,炮兵怕把标兵碰,标兵怕碰炮兵炮。"

sum = 0

for word in str_1:

    if word == '兵':

        sum += 1

print(f"经统计分析,一共有兵字:{sum}个。")

运行结果:

经统计分析,一共有兵字:6个。

循环语句嵌套

定义:在Python中,允许一个循环体中嵌套另一个循环。

对于双层循环,循环的总次数等于内外层循环次数之积。

【示例】打印输出九九乘法表。

for i in range(1,10):

    for j in range(1,i+1):

        d = i * j

        print('%dx%d=%-2d '%(j,i,d),end='')

print()

运行结果:

1x1=1 

1x2=2  2x2=4 

1x3=3  2x3=6  3x3=9 

1x4=4  2x4=8  3x4=12 4x4=16

1x5=5  2x5=10 3x5=15 4x5=20 5x5=25

1x6=6  2x6=12 3x6=18 4x6=24 5x6=30 6x6=36

1x7=7  2x7=14 3x7=21 4x7=28 5x7=35 6x7=42 7x7=49

1x8=8  2x8=16 3x8=24 4x8=32 5x8=40 6x8=48 7x8=56 8x8=64

1x9=9  2x9=18 3x9=27 4x9=36 5x9=45 6x9=54 7x9=63 8x9=72 9x9=81

转移和中断语句

(1)break:完全终止循环

1)在while语句中使用break语句

语法结构:

while 条件表达式1:

       执行代码

       if 条件表达式2:

              break

【示例】猜数游戏。

import random

count = 0

while True:

    random_number = random.randint(1, 100)

    count += 1

    input_number = int(input("请输入你所猜的数字:"))

    if input_number > random_number:

        print(f"太大了,你猜的数应该为{random_number}")

    elif input_number < random_number:

        print(f"太小了,你猜的数应该为{random_number}")

    else:

        print("恭喜你,猜对了!")

        break

运行结果:

请输入你所猜的数字:56

太小了,你猜的数应该为67

请输入你所猜的数字:67

太大了,你猜的数应该为44

请输入你所猜的数字:44

太大了,你猜的数应该为24

请输入你所猜的数字:42

太小了,你猜的数应该为67

请输入你所猜的数字:63

太小了,你猜的数应该为93

请输入你所猜的数字:

2)在for语句中使用break语句

语法结构:

for 迭代变量 in 对象:

       if 条件表达式:

break

【示例】输入一个整数,判断是否为素数。

number =  int(input("请输入一个整数:"))

if number < 2:

    print("不是素数!")

else:

    for i in range(2,number):

        if number % i == 0:

            print(f"{number}不是素数。")

            break

    else:

        print(f"{number}是素数。")

运行结果:

请输入一个整数:7

7是素数。

(2)continue:结束本次循环,直接跳到下一次循环。

1)在while语句中使用continue语句

语法结构:

while 条件表达式1:

       执行代码

       if 条件表达式2:

              continue

【示例】从键盘输入密码,如果密码长度小于6,则要求重新输入;如果等于6,则判断密码是否正确,如果正确则中断循环,否则提示错误,并要求继续输入。

while True:

    pwd = input("请输入密码:")

    if len(pwd) < 6:

        print("长度为6,请重新输入。")

        continue

    if pwd == '123456':

        print("恭喜你,密码输入正确。")

        break

    else:

        print("密码有误,请重试!")

运行结果:

请输入密码:123

长度为6,请重新输入。

请输入密码:456789

密码有误,请重试!

请输入密码:123456

恭喜你,密码输入正确。

2)在for语句中使用continue语句

语法结构:

for 迭代变量 in 对象:

       if 条件表达式:

continue

【示例】过滤敏感字。

sentence = input("请输入一段文字:")

for word  in sentence:

    if word == '色':

        continue

print(word)

运行结果:

请输入一段文字:五光十色,食色可佳

五

光

十

,

食

可

佳

【示例】逢7拍腿游戏。

数字末尾为7或者7的倍数,拍一下腿。

请统计一下,1~99一共拍了多少次腿。

total = 99

for num in range(1,100):

    if num % 7 == 0:

        continue

    else:

        strnum = str(num)

        if strnum.endswith('7'):

            continue

    total -= 1

print(f"从1到99,共拍腿{total}次")

运行结果:

从1到99,共拍腿22次

while…else和for…else

【示例】利用for…else…实现猜年龄游戏。判断猜大,猜小。超过3次,提示“对不起,次数到了”。

age_old_boy=60

for i in range(3):

    guess = int(input("请输入你猜的年龄:"))

    if guess == age_old_boy:

        print("猜对了。")

        break

    elif guess > age_old_boy:

        print("猜大了。")

    else:

        print("猜小了。")

else:

    print("对不起,次数到了。")

运行结果:

请输入你猜的年龄:56

猜小了。

请输入你猜的年龄:89

猜大了。

请输入你猜的年龄:60

猜对了。

【上机任务】

P93

11

12

13

15

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MorleyOlsen

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值