Python练习--for循环与while循环练习题

用代码表示1-100求和
for循环

#1+2+3+...+100
sum = 0
for i in range (1,101):
    sum = sum + i
print(sum)

while循环

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

9*9乘法表

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

用“*”输出菱形
for循环方法一

for i in range(1,6):
    for j in range(1,6-i):
        print(" ",end="")
    for k in range(1,2*i):
        print("8",end="")
    print()
for i in range(1,5):
    for j in range(1,i+1):
        print(" ",end="")
    for k in range(1,10-2*i):
        print("8",end="")
    print()

for循环方法二

for i in range(-4,5):
    for j in range(abs(i)):
        print(" ", end="")
    for k in range(9-2*abs(i)):
        print("8", end="")
    print()

while循环

i = -4
while i<5:
    j = 0
    while j <=abs(i):
        print(" ",end="")
        j += 1
    k = 0
    while k < 9-2*abs(i):
        print("*",end="")
        k += 1
    i += 1
    print()

百钱买百鸡
有100元钱,买100只鸡,公鸡5元一只,母鸡3元一只,小鸡1元三只,共多少种买法。

#百钱买百鸡
for g in range(0,20):
    for x in range(0,100):
        m = 100 - g - x
        if m > 0 and g * 5 + x / 3 + m * 3 == 100:
            print(g,m,x)

本金10000元存入银行,年利率是千分之三,每过1年,将本金和利息相加作为新的本金。计算5年后,获得的本金是多少?
方法一

money = 10000
for i in range(1,6):
    money = money+(money * 3 / 1000)
print(money)

方法二

for i in range(1,6):
    money = 10000 * ((1+0.003)**i)
print(money)

计算出1—100之间所有能被3整除的整数的和?

i = 1
num = 0
while i <= 101:
    if i % 3 == 0:
        num += i
    i += 1
print(num)

计算1000以内所有不能被7整除的整数之和?

i = 1
sum = 0
while i <= 1000:
    if i % 7 != 0:
        sum += i
    i += 1
print(sum)

找出一个数的所有因子数。
方法一

a = int(input("请输入一个整数:"))
for i in range(1,a+1):
    for j in range(1,a+1):
        if i * j == a and i <= j:
            if i == j:
                print(i)
            else:
                print(i," ",j)

方法二

a = int(input("2"))
for i in range(1,a+1):
    if a % i == 0 :
        print(i)

定义一个正整数如:1205 统计它的各位数字中零的个数,并求各位数字中的最大者。

n = int(input("请输入一个整数:"))
#确认0的个数
con = 0
#为最大值赋予初始值
max = 0
#判断n是否大于0(是否为正数)
while n > 0:
#统计0的个数
    if n % 10 == 0:
        con += 1
#若输入的n首次输入时尾数不为0,则对其进行最大值判断
    elif n % 10 != 0:
        if n %10 > max:
            max = n % 10#如果大于最大值,将该位值赋予最大值
    n = n //10#换位数重新筛选
print("0的个数:",con,"最大值为:",max)

有1020个西瓜,第一天卖掉总数的一半后又多卖出两个,以后每天卖剩下的一半多两个,问几天以后能卖完?

total_count = 1020
count = 0
while total_count > 0:
    total_count = total_count - (total_count / 2 + 2)
    count += 1
print(count)

猴子吃桃问题: 猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个,
第二天早上又将剩下的桃子吃了一半,又多吃一个,以后每天都吃了前一天剩下的一半零一个。
到第10天早上想再吃时,见只剩下一个桃子。求第一天共摘了多少个?

sum = 1
for d in range(1,10):
    sum = (sum+1)*2
print(sum)

循环录入某学生5门课的成绩并计算平均分,如果某分数录入为负,停止录入并提示录入错误。(使用break)
方法一

sum = 0
i = 1
avg = 0
while i ==1:
    a = int(input("1:"))
    if a > 0:
        sum += a
        avg = sum / 1
    else:
        print("错误")
        break
    b = int(input("2:"))
    if b > 0:
        sum += b
        avg = sum / 2
    else:
        print("错误")
        break
    c = int(input("3:"))
    if c > 0:
        sum += c
        avg = sum / 3
    else:
        print("错误")
        break
    d = int(input("4:"))
    if d > 0:
        sum += d
        avg = sum / 4
    else:
        print("错误")
        break
    e = int(input("5:"))
    if e > 0:
        sum += e
        avg = sum / 5
    else:
        print("错误")
        break
    i += 1
print(avg)

方法二

sum = 0
for i in range(1,6):
    score = int(input("请输入成绩:"))
    if score<0:
        print("错误!")
        break
    else:
        sum += score
print("平均分:",sum/5)

循环录入Java课的学生成绩,统计分数大于等于 80分的学生比例(使用continue)

d = 0#80以上人数
c = int(input("人数"))
for i in range(c):
    score = int(input("请输入成绩:"))
    if score >= 80:
        d += 1
        continue
print(d/c)

用while做鸡兔同笼。鸡兔一共有50只,脚一共有160只,问鸡和兔各多少只?
要求鸡兔至少一样一只。

chick=0
while chick<50:
    rabbit = 50 - chick
    if chick * 2 + rabbit * 4 == 160:
        print(chick,rabbit)
    chick += 1

计算2 / 1 + 3 / 2 + 4 / 3 +…+(n + 1) / n,写出算法的程序.

a = 0
n = int(input("请输入一个整数"))
for i in range(1,n+1):
    a += (i+1)/i
print(a)

有个人想知道,一年之内一对兔子能繁殖多少对?于是就筑了一道围墙把一对兔子关在里面。
已知一对兔子每个月可以生一对小兔子,而一对兔子从出生后第3个月起每月生一对小兔子。
假如一年内没有发生死亡现象,那么,一对兔子一年内(12个月)能繁殖成多少对?
分析:兔子的规律为数列,1,1,2,3,5,8,13,21

a = 1#第一个月
b = 1#第二个月
sum = 2#第三个月
for i in range(1,11):#循环3-12月
#依次递推赋值并求和
    sum = a + b
    a = b
    b = sum
print(sum)

从控制台输入一个正整数,并进行反转输出。

a = input("请输入字符串:")
print(a[::-1])

猜你喜欢

转载自blog.csdn.net/weixin_44362227/article/details/86505857