允许用户输入多个数字,计算最大值和平均值;若输入非数字,则退出。


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   作者:闻骏