python循环

python循环

1.while循环

1)语法:
while 条件语句:
循环体

2)执行过程
先判断条件是否成立,成立就执行循环体,执行完循环体再判断条件是否成立,成立就再执行循环,…以此类推,判断条件的时候条件不成立,循环就结束

# 案例:使用while循环控制程序打印5次'hello world'
x = 0
while x < 5:
    print('hello world')
    x += 1

步骤说明:
x = 0; x < 5 ->  0 < 5  -> True  ->  print('hello world');x += 1 -> x = 1
x = 1; x < 5 ->  1 < 5  -> True  ->  print('hello world');x += 1 -> x = 2
...
x = 5; x < 5 ->  5 < 5  -> False

2.for和while的选择

遇到循环问题优先使用for循环,for循环解决不了的问题才使用while循环。
for循环无法解决的问题:
1)死循环
2)循环次数不确定(循环次数不由程序员决定,而是由使用这个程序的用户行为决定)

# 循环次数不确定的案例:写程序提示用户输入密码,直到输入的密码和系统保存的密码相同为止。
# while 输入的密码不等于系统保存的密码:
#   提示用户输入密码

pw = '12345'
value = input('请输入密码:')
while value != pw:
    value = input('请输入密码:')

3.continue和break是循环关键字,只能在循环体中使用

  1. continue - 结束一次循环
    执行循环体的时候如果遇到continue,当次循环结束,直接进入下一次循环。
for i in range(5):
     print('======')
     continue
     print('++++++')

for i in range(1, 11):
     if i % 2 == 1:
         continue
     print(i)
  1. break - 结束整个循环
    执行循环体的时候如果遇到了break,整个循环直接结束(循环体剩下的部分不在执行,也不会进入下一次循环)
for i in range(1, 11):
	if i % 5 == 0:
    	break
    	print(i)
print('i:', i)
  1. break的应用 - 当while遇到break
    while True:
    需要重复执行的操作
    if 循环结束的条件:
    break
# 案例:写程序提示用户输入密码,直到输入的密码和系统保存的密码相同为止。
pw = '12345'
while True:
    value = input('请输入密码:')
    if value == pw:
        break

# 练习:用程序实现猜数字游戏的功能
'''
系统随机产生一个0-100的随机数
'''
from random import randint
num = randint(0, 100)
count = 5
while True:
    value = int(input('请输入你猜的数字(0-100):'))
    count -= 1
    if value > num:
        print('数字大了!')
        print('次数还剩{}次'.format(count))
    elif value < num:
        print('数字小了!')
        print('次数还剩{}次'.format(count))
    else:
        print('恭喜你猜对了!')
        break
    if count == 4 and value == num:
        print('天才,你猜对了')

    if count == 0:
        print('你猜的次数已用完,游戏结束')
        break
print('正确答案是{}'.format(num))
  • 输入任意一个正整数,求他是几位数?
    解题思路:用一个变量来统计整除次数
    123 // 10 -> 12 // 10 -> 1 // 10 -> 0
n = int(input('请输入一个数:'))
count = 0
while True:
    count += 1
    n //= 10
    if n == 0:
        break
print('输入的数是{}位数'.format(count))
  • 判断指定的数是否是素数
    素数:2 3 5 7 13 …
方法1:
num = 13
count = 0  # 统计2 - num-1之间能被整除的数的个数

for i in range(2, num):
    if num % i == 0:
        count += 1
if count == 0:
    print(num, '是素数')
else:
    print(num, '不是素数')

方法2:
num = 18
flag = True  # 假设num是素数
for i in range(2, num):
    if num % i == 0:
        flag = False
        break
if flag:
    print(num, '是素数')
else:
    print(num, '不是素数')

4.循环结构

  1. 完整的循环结构
    1)完整的for循环
    for 变量 in 序列:
    循环体
    else:
    代码段

2)完整的while循环
while 条件语句:
循环体
else:
代码段

  1. 循环else的作用:
    1)else的存在不影响原来循环的执行

2)如果前面的循环是正常结束(for把数据取完了导致循环结束;while循环的条件不成立导致循环结束)的,else后面的代码段会在循环结束后执行;
如果前面的循环是因为遇到break而结束的,循环结束后不会执行else后面的代码段

for i in range(5):
    print('hello world')
    if i == 3:
        break
else:
    print('abc')
# 案例.判断指定的数是否是素数
num = 20
for i in range(2, num):
    if num % i == 0:
        print(num, '不是素数')
        break
else:
    print(num, '是素数')

# 练习:判断字符串是否为纯字母字符串
str1 = 'abchags'
for i in str1:
    if 'a' <= i <= 'z' or 'A' <= i <= 'Z':
        print(str1,'是纯字母字符串')
        break
else:
    print(str1, '不是纯字母字符串')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值