Python 编程——for 循环语句、while 循环语句

一、for 循环语句

1.for 循环语句结构

for 循环使用的语法:

for 变量 in range(10):
        循环需要执行的代码
else:
        全部循环结束后要执行的代码

2.python内置函数 range()

range(stop):0~stop-1
range(start,stop):start~stop-1
range(start,stop,step):start~stop-1,step为步长

>>> range(3)
[0, 1, 2]
>>> range(1,10)
[1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> range(1,10,2)
[1, 3, 5, 7, 9]
>>> range(2,11,2)
[2, 4, 6, 8, 10]

示例:
求1~100的数字之和

num = 0
for sum in range(1,101):
    num = num + sum
print(num)

需求1:求1~100之间的所有偶数之和

num = 0
for sum in range(2,101,2):
    num = num + sum
print(num)

需求2:求1~100之间的所有的奇数之和

num = 0
for sum in range(1,100,2):
    num = num + sum
print(num)

需求3:用户输入一个数字,求该数的阶乘:3!=321

num = int(input('请输入一个数字:'))
res = 1
for i in range(1,num+1):
    res *= i
print('%s的阶乘是%d' %(num,res))

操作练习:

用户登陆程序
1.输入用户名和密码
2.判断用户名和密码是否正确(‘name==root’,'passwd=‘westos’)
3.为了防止暴力破解,登陆次数仅有三次,如果超过三次机会,报错

for i in range(3):
    username = input('请输入用户名:')
    passwd = input('请输入密码:')
    if username == 'root' and passwd == 'westos':
        print('成功登陆程序')
        break
    else:
        print('登陆失败,您还剩余%d次机会' %(2-i))
else:
    print('登录机会用完,请等待后重试')

3.break 、continue、exit 的区别

break :跳出整个循环,不会再循环后面的内容

continue :跳出本次循环,continue后面的代码不再执行,但是循环依然继续

eixt() :结束程序的下运行

for i in range(10):
    if i == 5:
        break
    print(i)
print('hello python world')

开始执行脚本
0
1
2
3
4
hello python world
for i in range(10):
    if i == 5:
        continue
    print(i)
print('hello python world')

开始执行脚本
0
1
2
3
4
6
7
8
9
hello python world
for i in range(10):
    if i == 5:
        exit()
    print(i)
print('hello python world')

开始执行脚本
0
1
2
3
4

练习题:

题目:有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少?
提示:组成无重复的几位数,就嵌套几次

sum = 0
for a in range(1,5):
    for b in range(1,5):
        for c in range(1,5):
            if a != b and a != c and b != c:
                sum += 1
                print(a,b,c)
print('共有%d种可能'%(sum))

题目:实现命令行提示符
要求:
1.命令行样式[root@test3 ~]#
2.能实现原本linux中实现命令的功能
3.实现exit退出功能
4.实现原本linux输入回车功能

import os

for i in range(1000):
    cmd = input('[root@test3 ~]# ')
    if cmd:
        if cmd == 'exit':
            print('退出')
            break
        else:
            print('run %s' %(cmd))
            os.system(cmd)
    else:
        continue

题目:
输入两个数值:
求两个数的最大公约数和最小公倍数.

提示:最小公倍数=(num1*num2)/最大公约数;最大公约数=num1 % i ==0 , num2 %i ==0 ,i为最大公约数

方法一:

num1 = int(input('请输入第一个数:'))
num2 = int(input('请输入第二个数:'))
if num1 < num2:
    min = num1
elif num1 >num2:
    min = num2
for i in range(1,min+1):                         最大公约数的范围在1~min之间
    if num1 % i == 0 and num2 % i == 0:
        gys = i
        print('%s和%s的最大公约数是%d' %(num1,num2,gys))
gbs = (num1 * num2) / gys
print('%s和%s的最小公倍数是%d' %(num1,num2,gbs))

方法二:

num1 = int(input('请输入第一个数:'))
num2 = int(input('请输入第二个数:'))
min_num = min(num1,num2)
for i in range(1,min_num+1):
    if num1 % i == 0 and num2 % i == 0:
        gys = i
        print('%s和%s的最大公约数是%d' %(num1,num2,gys))
gbs = (num1 * num2) / gys
print('%s和%s的最小公倍数是%d' %(num1,num2,gbs))

二、while 循环语句

1.while 循环语句结构

while 条件满足:
        满足条件执行的语句
else:
        不满足条件执行的语句

示例:

sum = 0
i = 1
while i <= 10:
    sum += i
    i += 1
print(sum)

用while做

用户登陆程序
1.输入用户名和密码
2.判断用户名和密码是否正确(‘name==root’,'passwd=‘westos’)
3.为了防止暴力破解,登陆次数仅有三次,如果超过三次机会,报错

i = 0
while i < 3:
    username = input('请输入用户名:')
    passwd = input('请输入密码:')
    if username == 'root' and passwd == 'westos':
        print('成功登陆程序')
        break
    else:
        print('登陆失败,您还剩余%d次机会' %(2-i))
        i += 1
else:
    print('登录机会用完,请等待后重试')
2.while死循环:while True

即定义条件永真,即死循环

while True:
    print('hello world')
while 2 > 1:
	print('hello python world')

测试后快速退出,避免卡死

练习题:

猜数字游戏
if , while, break
1. 系统随机生成一个1~100的数字;
** 如何随机生成整型数, 导入模块random, 执行random.randint(1,100);
2. 用户总共有5次猜数字的机会;
3. 如果用户猜测的数字大于系统给出的数字,打印“too big”;
4. 如果用户猜测的数字小于系统给出的数字,打印"too small";
5. 如果用户猜测的数字等于系统给出的数字,打印"恭喜中奖100万",并且退出循环;

import random
num1 = random.randint(1,100)
i = 0
while i < 5:
    num2 = int(input('请输入您猜想的数字:'))
    if num1 == num2:
        print('恭喜中奖100万')
        break
    elif num1 > num2:
        print('too small')
        print('您还剩余%d次机会' %(4-i))
    else:
        print('too big')
        print('您还剩余%d次机会' %(4-i))
    i += 1

猜你喜欢

转载自blog.csdn.net/weixin_44209804/article/details/88550379