python循环练习题

 输出1-100偶数和

for i in range(0,101,2):
    print(i,end="\t")

--------------------------------------------------------------------------------------------

输出10行10列的*
for i in range(1,11):
    for j in range(1,11):
        print("*",end="")
    print()

---------------------------------------------------------------------------------------------------------

 输出直角三角形
for i  in  range(1,7):
    for j in range(1,i):
        print("*",end="")
    print()
---------------------------------------------------------------------------------------------------------



九九乘法表

for i in range(1,10):
    for j in  range(1,i):
        print(j,"*",i,"=",j*i,end="\t")
    print()
---------------------------------------------------------------------------------------------------------

斐波那契数列第一种写法
a=0
b=1
c=a+b
print(a)
print(b)
while c<1000:
    print(c)
    a=b
    b=c
    c=a+b

斐波那契数列第二种
a=b=1
print(a,b)
for i in range(1,7):
    print(a+b)
    c=a   #把原来的a赋值给c (把原先的值给存起来)
    a=b  #吧a赋值给第二位数值
    b=c+b # 算第三位值

    斐波那契数列第三种写法
a=b=1
print(a,b)
for i in range(1,7):
    print(a+b)
    a,b=b,a+b#   只有python 可以这么写 交换两个变量的值

---------------------------------------------------------------------------------------------

每个班级有五名学生   分别求每个学生的3科成绩的平均值

for i in range(1,6):
    sum=0
    for j in range(1,4):
        socer=input("请输入第%d个学生第",str(j),"门成绩:"%i)#这里有两种写法 一种给 j转换成字符串  另一种是用%d 后面调取
        socer=int(socer)
        sum=sum+socer
    sum=sum/j
    print("第",i,"名学生的平均成绩是",sum)
print()


#精简写法
for i in range(1,6):
    socer=0
    for j in range(1,4):
        socer+=input("请输入第%d个学生第",str(j),"门成绩:"%i)#这里有两种写法 一种给 j转换成字符串  另一种是用%d 后面调取
    print("第",i,"名学生的平均成绩是",socer/3)



----------------------------------------------------------------------------------------------------------

画小星星
for i in range(0,8):
    for e in range(8,i,-1):
        print(" ",end='')
    for j in range(1,i+(i+2)):
        print("*",end='')
    print()

简便写法
for i in range(1,9):
    print(' '*(8-i),"*"*(2*i-1))

-----------------------------------------------------------------------------------------------------------
让用户输入一个数, 判断这个数在1-10之间能否有被整除的数

tag=True
a=int(input("请输入一个数字:"))
for i in range(1,11):
    if i%a==0:
        tag=False
        print(i)
        break
if tag==True:
    print("不存在")



python 里的写法

a=int(input("请输入一个数字:"))
for i in range(1,11):
    if i%a==0:
        tag=False
        print(i)
        break
else:
    print("不存在")


for...else:    当循环中有break时, 如果没有则执行if,否则 执行else

-------------------------------------------------------------------------------------------------------------

while:循环次数不固定 使用while


输出我要好好学习,如果输入y则继续,否则退出
tag='y'
while tag=="y":

    print("我要好好学习")
    tag=input('是否继续?y/n')
-----------------------------------------------------------------------------------------------------------

循环输出1-10
a=0
while a<11:
    print(a)
    a=a+1
-----------------------------------------------------------------------------------------------
请用户输入数字,求和,知道输出0退出、
sum=0
while True:
    a=int(input("请输入数字:"))

    if a==0:
        print("退出")
        break
    else:
        sum+=a
print("输入数字的和是",sum)
------------------------------------------------------------------------------------------------------------

有四个数字:1234,能组成多少个互不相同且无重复数字的三位数?各是多少?

cont=0
for i in range(1,5):
    for j in range(1,5):
        for a in range (1,5):
            if i!=j and j!=a and a!=i:
                print(i,j,a)
                cont=cont+1
print(cont)
---------------------------------------------------------------
求1-100内的所有质数:

for i in range(2,101):
    a=True
    for j in range(2,i-1):
        if(i%j==0):
            a=False
            break
    if a==True:
        print(i)

另一种方法
for i in range(2,101):
    j=2
    while j<=i:
        if i%j==0:
            break
        j+=1
    if j<i:
        continue
    else:
        print(i,end="\t")
--------------------------------------------------------
求两个数的最小公倍数,和最大公约数


num1=int(input("请输入第一个数字"))
num2=int(input("请输入第二个数字"))
for i in range(num1,0,-1):
    if num1%i==0 and num2%i==0:

        print("最大公约数是",i)
        print('最小公倍数是',(num1*num2)/i)
        break
---------------------------------------------------------------------------------------------
 
 
 ========================================
 欢迎进入学员管理系统
 a.注册
 b.登录
 c.退出
 d.修改密码
=========================================

编写程序,从键盘获取用户名和密码,然后判断,如果正确就输出以下信息
 亲爱的xxx,欢迎登录学员管理系统




db={}
prompt='''
 ========================================
 欢迎进入学员管理系统
 a.注册
 b.登录
 c.退出
 d.修改密码
=========================================
'''
while True:
    choice=input(prompt)
    print('请输入你的选择[%s]'%choice)
    if choice not in ('abcd'):
        print("输入有误请重新输入")
    else:
        if choice =="a":
            prompt1='新账户:'
            while True:
                name=input(prompt1)
                if name in db:
                    prompt1='账户已被使用请重新输入'
                    continue
                else:
                    break
            pwd=input('密码:')
            db[name]=pwd
        elif choice=='b':
            name=input("账号:")
            pwd=input("密码:")
            password=db.get(name)
            if password==pwd:
                print('亲爱的%s,欢迎登录学员管理系统'%name)
                break
            else:
                print("请重新输入")
        elif choice=="c":
            print("感谢使用")
            break
        elif choice=="d":
            name = input("请输入账号:")
            pwd = input("请输入密码:")
            password = db.get(name)
            if password == pwd:
                pwd1=input("输入要修改的密码")
                db[name]=pwd1

            else:
                input("输入有误请重新输入")

猜你喜欢

转载自blog.csdn.net/mr_li1/article/details/80546901