python循环练习题

时间:2022-03-14 11:48:13

 输出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("请输入第二个数字"))
m=num1*num2
if num2>num1:  num1,num2=num2,num1
for i in range(num1,0,-1):  if num1%i==0 and num2%i==0:  print("最大公约数是",i)
        print("最小公倍数",m//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("输入有误请重新输入")