Python之for循环(综合练习)

for 循环的综合练习

需求1:

有1,2,3,4四个数字
求这四个数字能生成多少个互不相同且无重复数字的三位数(4*3*2*1=24)

注意:本题目只是让求出符合要求的数字个数,无需输出每个数,不要把题目想复杂了

代码:

# 记录符合要求的数字个数
count = 0

for i in (1,2,3,4):
    for j in (1,2,3,4):
        for k in (1,2,3,4):
            # 去重
            if i != j and i != k and j!= k:
                count += 1
print(count)

运行结果:
Python之for循环(综合练习)
需求2:

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

代码:

# 1.输入两个数字
num1 = int(input('num1='))
num2 = int(input('num2='))

# 2.找出两个数中的最小值
min_num = min(num1,num2)

# 3.求最大公约数,它的范围在1~min_num之间
for i in range(1,min_num+1):
    if num1 % i == 0 and num2 % i == 0:
        maxc = i

# 4.求最小公倍数
minc = (num1 * num2) / maxc

print('%d和%d的最大公约数为:%d' %(num1,num2,maxc))
print('%d和%d的最小公倍数为:%d'  %(num1,num2,minc))

运行结果:
Python之for循环(综合练习)
需求3:

用for循环实现:
   用户登录需求:
     1.输入用户名和密码;
     2.判断用户名和密码是否正确(name='root',passwd='westos')
     3.登录仅有三次机会,超过3次会报错

分析:
用户登陆情况有3种:
用户名错误(此时便无需判断密码是否正确)  --登陆失败
用户名正确 密码错误   --登陆失败
用户名正确 密码正确   --登陆成功

代码:

print('欢迎来到用户登陆界面'.center(50,'*'))

# 记录登陆次数
trycount = 0

for i in range(3):
    # 接收用户输入的用户名和密码
    user = input('用户名:')
    passwd = input('密码:')
    # 每输入一次登陆次数便加1
    trycount += 1
    # 判断用户名是否正确
    if user == 'root':
        # 判断密码是否正确
        if passwd == 'westos':
            print('登陆成功')
            # 登陆成功则退出系统
            break
        else:
            print('登陆失败,密码错误!')
            # 总的次数为3,剩余次数即为(3-登陆次数)
            print('你还有%s次机会' %(3-trycount))
    else:
        print('登陆失败,该用户不存在!')
        print('你还有%s次几机会' %(3-trycount))
else:
    print('很抱歉,三次机会已经使用完,无法再继续登陆')

运行结果:
Python之for循环(综合练习)
补充:

for...else...  表示当语句体中有 break,return或者异常发生时,则不会执行else中的语句体,余情况下都会执行else中的语句体