分支与循环部分练习题:
1、从键盘输入三个同学的成绩,然后找出最高分。
2、输入三个同学的成绩,然后由大到小排序。
3、求出1000以内的所有完数,如6=1+2+3除了它自身以外的因子之和等于它本身叫完数。
4、用循环语句求1+22+333+4444+55555的和。
5、求出2000-2100的所有闰年,条件是四年一闰;百年不闰,四百年再闰。
6、输入两个正整数,并求出它们的最大公约数和最小公倍数。
7、输出100以内的所有质数。
8、求100以内最大的10个质数的和。
9、 求1到10 所有偶数的和。
10、将10-20不能被2或3整除的数输出。
1.从键盘输入三个同学的成绩,然后找出最高分。
print("依次输入三个学生的成绩")
x = int(input())
y = int(input())
z = int(input())
if x > y and x > z :
print(x)
elif y > x and y > z:
print(y)
elif z > x and z > y:
print(z)
else:print("成绩一样")
看到的一个简便方法直接使用max内置函数
print("依次输入三个学生的成绩")
x = int(input())
y = int(input())
z = int(input())
d = max(x,y,z)
print(d)
运行结果:
依次输入三个学生的成绩
98
99
100
100
2.输入三个同学的成绩,然后由大到小排序。
print("输入三个不一样的数字")
x = int(input())
y = int(input())
z = int(input())
if x != y and x != z and z != y:
if x > y :
if y > z :
print(x,y,z)
elif z > y and z > x :
print(z,x,y)
else:print(x,z,y)
elif x < y :
if x > z :
print(y,x,z)
elif y < z :
print(z,y,x)
else : print("有数字一样从新输入")
简便方法:
print("输入三个不一样的数字")
x = int(input())
y = int(input())
z = int(input())
d = max(x,y,z)
e = []
e.append(x)
e.append(y)
e.append(z)
e.sort(reverse=True)
print(e)
运行结果:
输入三个不一样的数字
67
77
32
[77, 67, 32]
进程已结束,退出代码为 0
3.求出1000以内的所有完数,如6=1+2+3除了它自身以外的因子之和等于它本身叫完数。
这题我不会所以是搜到了2种方法一个是循环一个是函数
3.1循环:
num = 2
while num < 1000:
perfectFactor = 0
n = 1
while n < num:
if num % n == 0:
perfectFactor += n
n += 1
if perfectFactor == num:
print("%d是完数且小于1000." % perfectFactor)
num += 1
3.2函数:
def main():
for x in range(1, 1001):
# **********Program**********
# 将因子放在列表中
lists = []
for factor in range(1, x):
if x % factor == 0:
lists.append(factor)
# ********** End **********
if x == sum(lists):
print("完数为:%d" % x)
print("它的真因子为:%s" % lists)
if __name__ == '__main__':
main()
4.用循环语句求1+22+333+4444+55555的和。
5.求出2000-2100的所有闰年,条件是四年一闰;百年不闰,四百年再闰。
for i in range(2000,2100):
if i % 4 ==0 and i % 100 != 0 or i % 400 ==0:
print(i)
输出结果:
2000
2004
2008
2012
2016
2020
2024
2028
2032
2036
2040
2044
2048
2052
2056
2060
2064
2068
2072
2076
2080
2084
2088
2092
2096
进程已结束,退出代码为 0
7.输出100以内的所有质数。
zhishu = []
for num in range(2,100):
for n in range(2,num):
if num % n == 0 :
break
else: zhishu.append(num)
print('100以内的质数:')
print(zhishu)
运行结果:
100以内的质数:
[2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97]
进程已结束,退出代码为 0
9.求1到10 所有偶数的和。
sum = 0
sum1 = 0
for i in range(1,11):
if i % 2 ==0:
sum = sum + i
i = i + 1
print("10以内偶数和是", sum)
10以内偶数和是 30
进程已结束,退出代码为 0
10.将10-20不能被2或3整除的数输出。
list = []
for i in range(10,21):
if i % 2 !=0 and i % 3 !=0:
list.append(i)
i = i +1
print(list)
[11, 13, 17, 19]
进程已结束,退出代码为 0