允许用户输入多个数字,计算最大值和平均值;若输入非数字,则退出。
maxNumber = 0
sum = 0
count = 0
firstNumber = input("Please enter a number: ")
if firstNumber == '' or firstNumber.isdigit() == False:
flag = 0
else:
maxNumber = firstNumber
count += 1
sum += int(firstNumber)
while True:
nextNumber = input("Please enter a number: ")
if nextNumber == '' or nextNumber.isdigit() == False:
break
else:
if nextNumber > maxNumber:
maxNumber = nextNumber
count += 1
sum += int(nextNumber)
flag = 1
if flag == 0:
print("Must enter number at first time!")
else:
print("The bigest number is: {}".format(maxNumber))
print("The avg number is {}".format(sum/count))
九九乘法表
Format方式,第一行最少
for i in range(1, 10):
for j in range(1, i+1):
print("{}*{}={:<{}}".format(i, j, i*j, 1 if j == 1 else 2), end=" ")
print()
Format方式,第一行最多,补空格
for i in range(1, 10):
print(" "*(i-1)*6+" "*(i-4), end="")
for j in range(i, 10):
print("{}*{}={:<{}}".format(i, j, i * j, 1 if j <= 3 else 2), end=" ")
print()
Format方式,第一行最多,靠右对齐
for i in range(1, 10):
line = ""
for j in range(i, 10):
line += "{}*{}={:<{}}".format(i, j, i * j, 2 if j < 5 else 3)
if i == 1: maxLength = len(line)
print("{:>{}}".format(line, maxLength))
列表解析式
[print("{0}*{1}={2:<{3}}".format(j, i, j*i, 1 if j == 1 else 2), end='\n' if i == j else ' ') for i in range(1, 10) for j in range(1, i+1)]
打印图形
打印菱形
n = 7
e = n//2
# 通过拼接
for i in range(-e, e+1):
print(" "*abs(i)+"* "*(n-2*abs(i)))
# 通过坐标系
for i in range(-e, e+1):
for j in range(1, n+1):
if abs(i) < j < n+1-abs(i):
print("* ", end="")
else:
print(" ", end="")
print()
打印对顶三角形
n = 7
e = n//2
# 通过拼接
for i in range(-e, e+1):
print(" "*(e-abs(i))+"* "*(2*abs(i)+1))
# 通过坐标系
for i in range(-e, e+1):
for j in range(1, n+1):
if e-abs(i) < j < n+1-(e-abs(i)):
print("* ", end="")
else:
print(" ", end="")
print()
打印闪电
n = 7
e = n//2
for i in range(-e, e+1):
if i < 0:
print(" "*abs(i)+"* "*(e-abs(i)+1))
elif i == 0:
print("* "*n)
else:
print(" "*e+"* "*(e-i+1))
斐波那契数列
循环+列表
a = 0
b = 1
myList = [a, b]
for i in range(10):
a,b = b, a+b
myList.append(b)
print(myList)
质数
求100000以内素数
count = 1
for i in range(3, 100000, 2):
for j in range(3, int(i**0.5)+1, 2):
if i % j == 0:
break
else:
count += 1
print(count)
利用已有的质数:
n = 100000
count = 0
prime = []
for i in range(2, n):
flag = False
for j in prime:
if i % j == 0:
flag = True
break
if j > i ** 0.5:
break
if not flag:
count += 1
prime.append(i)
print(count)
猴子吃桃的问题
猴子第一天吃了一半的桃子,不过瘾,又吃了一个;此后每天吃了剩下的一半,又多吃了一个;
第10天只剩下一个桃子,求第一天的桃子数量。
count = 1
for i in range(1, 10):
count = (count+1)*2
print(count)
文档更新时间: 2020-05-22 14:17 作者:闻骏