Python--循环语句for和while

本文介绍了Python中for循环和while循环语句。for循环语法为‘for 变量 in 序列’,给出了求1 - 100和、奇数和、偶数和等应用示例,还说明了break、continue、exit的区别;while循环语法是‘while 条件满足’,有用户登录验证、输出9*9乘法表等应用。

一.for循环语句
1.语法结构
for 变量 in 序列:
循环需要执行的代码
else:
全部循环结束后要执行的代码
2.应用
(1)求1~100之和

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

(2)求1~100的奇数和

sum = 0
for i in range(1,101,2):   ##range(start,stop+1,step)
    sum += i
print(sum)

(3)求1~100的偶数和

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

(4)求数字的阶乘

num = int(input('请输入数字:'))
res = 1
for i in range(1,num+1):
    res *= i
print(res)

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

    for i in range(1,4):
    name = input('Please input username:')
    passwd = input('Please input password:')
    if name == 'root' and passwd == 'redhat':
        print('登录成功!!')
        break
    else:
        print('登录失败!!')
        print('您还有%d次机会!!' %(3-i))
else:
    print('登录次数超过3次,请40s后重试!!')

break continue exit的区别
break:跳出整个循环,不会再循环后面的内容
continue:跳出本次循环,continue后面代码不会执行,
但是循环依然继续的
exit():结束程序的运行
(6)命令行提示符的实现

import os
for i in range(1000):
    cmd = input('[test@foundation]')
    if cmd:
        if cmd == 'exit':
            print('logout')
            break
        else:
            print('run %s' %(cmd))
            os.system(cmd)  ##运行命令
    else:
        continue

结果测试:

[kiosk@foundation4 ~]$ /usr/local/python3/bin/python3 /home/kiosk/PycharmProjects/0525/02.py
[test@foundation]
[test@foundation]
[test@foundation]ls
run ls
Deskto	 Documents  passwd    pycharm-community-2016.3.2	 Templates
desktop  Downloads  Pictures  pycharm-community-2016.3.2.tar.gz  Videos
Desktop  Music	    Public    PycharmProjects
[test@foundation]pwd
run pwd
/home/kiosk
[test@foundation]exit
logout
[kiosk@foundation4 ~]$ 

(7)输入两个数值:求两个数的最大公约数和最小公倍数.
最小公倍数=(num1*num2)/最大公约数

num1 = int(input('Num1:'))
num2 = int(input('Num2:'))
min_num = min(num1,num2)
for i in range(1,min_num+1):
    if num1%i == 0 and num2%i == 0:
        最大公约数 = i
最小公倍数 = int(num1*num2/最大公约数)
print('%d与%d的最大公约数为%d' %(num1,num2,最大公约数))
print('%d与%d的最小公倍数为%d' %(num1,num2,最小公倍数))

二.while循环语句
1.语法结构
while 条件满足:
满足条件执行的语句
else:
不满足条件执行的语句
2.应用
(1) 输入用户名和密码,判断用户名和密码是否正确,为了防止暴力破解,登陆次数仅有三次,如果超过三次机会,报错

i = 0
while i < 3:
    name = input('username:')
    passwd = input('password:')
    if name == 'root' and passwd == 'redhat':
        print('登录成功')
        break
    else:
        print('登录失败')
        print('您还有%d次机会' %(2-i))
        i += 1
else:
    print('3次机会用完,请40s后重试')

(2)利用while嵌套结构输出9*9乘法表
方法1

row = 1
while row <= 9:
    col = 1
    while col <=row:
        print('%d * %d = %d\t' %(row,col,row*col),end = ' ')
        col += 1
    print('')
    row += 1
1 * 1 = 1	 
2 * 1 = 2	 2 * 2 = 4	 
3 * 1 = 3	 3 * 2 = 6	 3 * 3 = 9	 
4 * 1 = 4	 4 * 2 = 8	 4 * 3 = 12	 4 * 4 = 16	 
5 * 1 = 5	 5 * 2 = 10	 5 * 3 = 15	 5 * 4 = 20	 5 * 5 = 25	 
6 * 1 = 6	 6 * 2 = 12	 6 * 3 = 18	 6 * 4 = 24	 6 * 5 = 30	 6 * 6 = 36	 
7 * 1 = 7	 7 * 2 = 14	 7 * 3 = 21	 7 * 4 = 28	 7 * 5 = 35	 7 * 6 = 42	 7 * 7 = 49	 
8 * 1 = 8	 8 * 2 = 16	 8 * 3 = 24	 8 * 4 = 32	 8 * 5 = 40	 8 * 6 = 48	 8 * 7 = 56	 8 * 8 = 64	 
9 * 1 = 9	 9 * 2 = 18	 9 * 3 = 27	 9 * 4 = 36	 9 * 5 = 45	 9 * 6 = 54	 9 * 7 = 63	 9 * 8 = 72	 9 * 9 = 81

方法2

row = 9
while row >= 1:
    col = row
    while col >= 1:
        print('%d * %d = %d\t' %(row,col,row*col),end = ' ')
        col -= 1
    print('')
    row -= 1
9 * 9 = 81	 9 * 8 = 72	 9 * 7 = 63	 9 * 6 = 54	 9 * 5 = 45	 9 * 4 = 36	 9 * 3 = 27	 9 * 2 = 18	 9 * 1 = 9	 
8 * 8 = 64	 8 * 7 = 56	 8 * 6 = 48	 8 * 5 = 40	 8 * 4 = 32	 8 * 3 = 24	 8 * 2 = 16	 8 * 1 = 8	 
7 * 7 = 49	 7 * 6 = 42	 7 * 5 = 35	 7 * 4 = 28	 7 * 3 = 21	 7 * 2 = 14	 7 * 1 = 7	 
6 * 6 = 36	 6 * 5 = 30	 6 * 4 = 24	 6 * 3 = 18	 6 * 2 = 12	 6 * 1 = 6	 
5 * 5 = 25	 5 * 4 = 20	 5 * 3 = 15	 5 * 2 = 10	 5 * 1 = 5	 
4 * 4 = 16	 4 * 3 = 12	 4 * 2 = 8	 4 * 1 = 4	 
3 * 3 = 9	 3 * 2 = 6	 3 * 1 = 3	 
2 * 2 = 4	 2 * 1 = 2	 
1 * 1 = 1	 

方法3

row = 1
while row <= 9:
    col = 1
    while col >= 9:
        print('%d * %d = %d\t' %(row,col,row*col),end = ' ')
        col -= 1
    print('')
    row += 1
1 * 1 = 1	 
2 * 2 = 4	 2 * 1 = 2	 
3 * 3 = 9	 3 * 2 = 6	 3 * 1 = 3	 
4 * 4 = 16	 4 * 3 = 12	 4 * 2 = 8	 4 * 1 = 4	 
5 * 5 = 25	 5 * 4 = 20	 5 * 3 = 15	 5 * 2 = 10	 5 * 1 = 5	 
6 * 6 = 36	 6 * 5 = 30	 6 * 4 = 24	 6 * 3 = 18	 6 * 2 = 12	 6 * 1 = 6	 
7 * 7 = 49	 7 * 6 = 42	 7 * 5 = 35	 7 * 4 = 28	 7 * 3 = 21	 7 * 2 = 14	 7 * 1 = 7	 
8 * 8 = 64	 8 * 7 = 56	 8 * 6 = 48	 8 * 5 = 40	 8 * 4 = 32	 8 * 3 = 24	 8 * 2 = 16	 8 * 1 = 8	 
9 * 9 = 81	 9 * 8 = 72	 9 * 7 = 63	 9 * 6 = 54	 9 * 5 = 45	 9 * 4 = 36	 9 * 3 = 27	 9 * 2 = 18	 9 * 1 = 9

方法4

row = 9
while row >= 1:
    col = row
    while col >= 1:
        print('%d * %d = %d\t' %(row,col,row*col),end = ' ')
        col -= 1
    print('')
    row -= 1
9 * 9 = 81	 9 * 8 = 72	 9 * 7 = 63	 9 * 6 = 54	 9 * 5 = 45	 9 * 4 = 36	 9 * 3 = 27	 9 * 2 = 18	 9 * 1 = 9	 
8 * 8 = 64	 8 * 7 = 56	 8 * 6 = 48	 8 * 5 = 40	 8 * 4 = 32	 8 * 3 = 24	 8 * 2 = 16	 8 * 1 = 8	 
7 * 7 = 49	 7 * 6 = 42	 7 * 5 = 35	 7 * 4 = 28	 7 * 3 = 21	 7 * 2 = 14	 7 * 1 = 7	 
6 * 6 = 36	 6 * 5 = 30	 6 * 4 = 24	 6 * 3 = 18	 6 * 2 = 12	 6 * 1 = 6	 
5 * 5 = 25	 5 * 4 = 20	 5 * 3 = 15	 5 * 2 = 10	 5 * 1 = 5	 
4 * 4 = 16	 4 * 3 = 12	 4 * 2 = 8	 4 * 1 = 4	 
3 * 3 = 9	 3 * 2 = 6	 3 * 1 = 3	 
2 * 2 = 4	 2 * 1 = 2	 
1 * 1 = 1	 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值