python语句中循环语句小练习

一、循环语句while

1、语法格式

while循环语法格式

while 表达式:
    执行语句



while嵌套
while 表达式1:
    while 表达式1-1:
        执行语句1-1
    执行语句1

2、注意事项

循环语句必须有指定的结束条件,否则会陷入死循环。

循环语句分为两种控制方法:

条件控制

计数控制

3、小练习

1、去超市买十斤苹果。(条件控制循环)

total = 0
while total < 10:
    weight = float(input())
    total += weight

2、去超市买10个苹果。(计数控制循环)

count = 1
while count<=10:
    print(f"开始拿第{count}个苹果")
    count += 1
    

3、输入用户名和密码,判断用户名为admin密码为hqyj666,若用户名和 密码正确,提示登录成功;否则重新再次输入判断。

while True:
    name = input("用户名")
    pwd = input("密码")

    if name == 'admin' and pwd == 'hqyj666':
        print("登录成功")
        break
    else:
        print("输入错误,请重新输入")

4、上面题目的改写,三次密码验证

count =1
while True:
    name = input("用户名")
    pwd = input("密码")

    if name == 'admin' and pwd == 'hqyj666':
        print("登录成功")
        break
    else:
        print("输入错误,请重新输入")
        count += 1
        if count > 3:
            print("三次机会已用完,请联系管理员")
            break

5、输出0到100之间所有能被3或5整除的数

i = 0
while i < 100:
    if i % 3 ==0 or i % 5 ==0:
        print(i)
    i += 1

6、计算1到100的累加和

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

7、计算1到100的偶数累加

i = 0
sum = 0
while i < 100:
    i += 1
    if i % 2 == 0:
        sum += i
print(sum)

8、从键盘输入起始值为a,终止值为b,计算a到b之间能被3整除的偶数之和

a,b = map(int,input().split())
sum = 0
while a <= b:
    if a % 3 == 0 and a % 2 == 0:
        sum += a
    a += 1
print(sum)

9、从键盘输入起始值为a,终止值为b,必须保证a<b,计算a到b之间能被3整除但不能被5整除的奇数的平方和

a,b = map(int,input().split())
sum = 0
if a > b:
    a,b = b,a
while a <= b:
    if a % 3 == 0 and a % 5 != 0 and a % 2 !=0:
        sum += a ** 2
    a += 1
print(sum)

10、打印如下三角形

num = int(input())
i = 1
while i <= num:
    j = 1
    while j <= i:
        print("*",end=' ')
        j += 1
    i += 1
    print()

11、打印九九乘法表

i = 1
while i <= 9:
    j = 1
    while j <= i:
        print(f"{j}*{i} ={j*i:2}",end=' ')
        j += 1
    i += 1
    print()

二、循环语句for

1、基本的for循环

1、语法格式

for语法格式:
for 临时变量 in 被遍历对象:
    代码块

2、注意事项

1.被遍历的对象可以是任意序列也可以是一个区间范围。

2.只要被遍历对象没有遍历完,就可以一直循环遍历,直到遍历结束。

2、range()函数

1、语法格式

range(起始值start, 终止值end, 步长值step)

2、注意事项

1.range返回的区间范围是 [start , end),也就是说不包含终值end

2.参数1,start默认是0,可以省略不写

3.参数2,end没有默认值,不可以省略

4.参数3,step默认值为1,可以省略不写

3、len()函数

1、语法格式

len( s )

2、注意事项

通常和range配合使用,用于序列中元素的计算。

3、小练习

1、1到100累加求和

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

2、输出100到999之间的所有水仙花数

for i in range(100,1000):
    a=i%10
    b=i//10%10
    c=i//100%10
    if (a**3 + b**3 + c**3) == i:
        print(i)

3、打印99乘法表

for i in range(1,10):
    for j in range(1,i+1):
        print(f"{j}*{i} ={j*i:2}",end=' ')
        j += 1
    i += 1
    print()

4、打印一个n行的等腰三角形

n = int(input())
for i in range(1,n+1):
    print(' '*(n-i)+'*'*(2*i-1),end='')
    i += 1
    print()

5、输入任意两个数,输出两数之间(包括这两个数)偶数之和

sum = 0
a,b = map(int,input().split())
for i in range(a,b+1):
    if i % 2 == 0:
        sum += i
print(sum)

6、输入一个数,输出这个数的所有因子

n = int(input())
for i in range(1,n+1):
    for j in range(1,i+1):
        if i * j == n:
            print(i,j)

7、输入一个数,判断这个数是不是质数

n = int(input())
for i in range(2,n):
    if n % i == 0:
        print("不是质数")
        break
else:
    print("是质数")

8、输出100以内的所有质数

for i in range(2,101):
    flag = True
    for j in range(2,i):
        if i%j == 0:
            flag = False
    if flag:
        print(i)

9、编程求 2000 以内的所有“完数”。 完数是指一个数恰好等于它的真因子值之和, 例如:6是完数,因为 6=1+2+3

for i in range(2,2001):
    sum = 0
    for j in range(1,i):
        if i % j ==0:
            sum += j
    if sum == i:
        print(i)

10、百钱买百鸡是一个很经典的问题,请使用穷举法求出,用一百块钱买一百只鸡, 共有哪几种买法(公鸡5块钱一只,母鸡3块钱一只,小鸡1块钱三只)

for i in range(0,101):
    for j in range(0,101):
        for k in range(0,301):
            if 5 * i +3 * j +k / 3 == 100 and i + j + k == 100:
                print(i,j,k)

11、已知一串5位数的密码,满足a开头,取值范围是1-9,其他4位由b c d e代替 取值范围是0-9。密码要满足下面两个条件: ①abcde * a == eeeeee ②a b c d e互不相等


for a in range(1,10):
    for b in range(10):
        for c in range(10):
            for d in range(10):
                for e in range(10):
                    if (e+d*10+c*100+b*1000+a*10000)*a==(e+e*10+e*100+e*1000+e*10000+e*100000) and a!=b!=c!=d!=e:
                        print(a,b,c,d,e)

12、1.用户由键盘输入用户名和密码,分别保存在user和psd中 # 1、同时验证用户名和密码是否正确,用户名默认为admin,密码默认为666888 # 2、如果正确提示登录成功,否则提示用户名或密码错误,请重新登录 # 3、以上功能最多尝试5次,若次数用完未能成功,则提示登录失败

for i in range(5):
    user = input("用户名:")
    pwd = int(input("密码:"))
    if user == 'admin' and pwd == 666888:
        print("登录成功")
        n = 1
        break
    else:
        print("用户名或密码错误,请重新输入")
else:
    print("登录失败")

13、设计一个逢7过的小游戏,输出100以内结果

for i in range(101):
    if i == 7 or i//10%10==7 or i%10 == 7:
        continue
    else:
        print(i)

14、猜数字游戏:用户输入任意一个数字与随机生成的数字比较, 两个数字一样就赢了(100 以内) 要求: (1) 使用random模块 【import random】 (2) 有三次猜错机会,猜对则打印数字 【生成随机整数random.】 (3) 用while循环实现功能

import random
n = random.randint(1,101)
i = 0
while i < 3:
    a = int(input("请输入数字:"))
    if n == a:
        print("恭喜你,猜对了")
    else:
        print("猜错了,请重新输入:")
    i += 1
else:
    print("机会用完了")

15、使用循环语句,计算下面的表达式

(1) 1 + 1*2 + 1*2*3 + …… + 1*2*3*...*n

sum = 1
m = 0
n = int(input())
for i in range(1,n+1):
    sum = sum * i
    m += (sum)
print(m)

(2) 1 + 1/2 + 1/3 + 1/4 + .... + 1/n

sum = 0
n = int(input())
for i in range(1,n+1):
    sum += (1/i)
print(sum)

(3) 1/2 + 2/3 + 3/4 + ...... + n/(n+1)

sum = 0
n = int(input())
for i in range(1,n+1):
    sum += i/(i+1)
print(sum)

(4) 1 - 1/2 + 1/3 - 1/4 + ...

sum = 0
n = int(input())
for i in range(1,n+1):
    if i % 2 == 0:
        sum -= (1 / i)
    if i % 2 != 0:
        sum += (1/i)
print(sum)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值