Bootstrap

2021-5-14-Python自动化31期-day02作业答案

1、求偶数元素的和[1,2,1,2,3,3,6,5,8]

count = 0
l = [1, 2, 1, 2, 3, 3, 6, 5, 8]
for i in l:
    if i % 2 == 0:
        count += i
print(count)

2、写代码:计算 1 - 2 + 3 - 4 + 5 - 6 … + 99 中除了88以外所有数的总和?

count = 0
for i in range(1, 100):
    if i != 88:
        if i % 2 == 0:
            count -= i
        else:
            count += i
print(count)

3、求1+2!+3!+4!+……+10!的和.

1! 1 * 1
2! 2 * 1
3! 3 * 2 * 1
4! 4 * 3 * 2 * 1
5!5 * 4 * 3 * 2 * 1
6!6 * 5 * 4 * 3 * 2 * 1
7!7 * 6 * 5 * 4 * 3 * 2 * 1
8!8 * 7 * 6 * 5 * 4 * 3 * 2 * 1

count = 0

for i in range(1, 11):
    tmp = 1
    for k in range(1, i + 1):
        tmp *= k
    count += tmp
print(count)

4、编写一个程序.

要求用户输入今天是星期几.根据用户的输入判定是工作日还是周末,并显示合适的问候语.
1.如果输入的数字不在17之间,则显示"请输入位于17之间的数".
2.如果用户输入的数字为6或7,则显示"周末愉快!"
3.对于1~5之间的数字,则显示"工作日愉快!"

while 1:
    cmd = input('>>: ').strip()
    if cmd.upper() == "Q":
        break
    if cmd.isdecimal():
        cmd = int(cmd)
        if 1 <= cmd <= 5:
            print('工作日愉快!')
        elif 6 <= cmd <= 7:
            print('周末愉快!')
        else:
            print("请输入位于1~7之间的数")
    else:
        print('请输入数字')

5、斐波那契数列

斐波那契数列指的是这样一个数列 0, 1, 1, 2, 3, 5, 8, 13,特别指出:第0项是0,第1项是第一个1。从第三项开始,每一项都等于前两项之和。
计算索引为10的斐波那契数列对应的值

第一种方法:

x, y = 0, 1
for i in range(1, 11):
    x, y = y, y + x
print(x)

第二种方法:

n = 1
x = 0
for h in range(1, 11):
    x, n = n, x + n
print(x)

6、猜数游戏

程序随机内置一个位于一定范围内的数字作为猜测的结果,由用户猜测此数字。用户每猜测一次,由系统提示猜测结果:太大了、太小了或者猜对了,直到用户猜对结果或者猜测次数用完导致失败。
设定一个理想数字比如:66,
让用户三次机会猜数字,如果比66大,则显示猜测的结果大了;
如果比66小,则显示猜测的结果小了;
只有等于66,显示猜测结果正确,退出循环。
最多三次都没有猜测正确,退出循环,并显示‘都没猜对,继续努力’。
x = 66
count = 1
while count <= 3:
    cmd = input('>: ').strip()
    if cmd.isdecimal():
        cmd = int(cmd)
        if cmd < x:
            print('猜测的结果小了')
        elif cmd > x:
            print('猜测的结果大了')
        else:
            print('猜测结果正确')
            break
        count += 1
    else:
        print('请输入数字')

7. 九九乘法表

for i in range(1, 10):
    for k in range(1, i + 1):
        print("{}*{}={}".format(k, i, i * k), end=' ')
    print()

8. 直角三角形

*        
**       
***      
****     
*****    
******   
*******  
******** 
*********
# format用法参考: https://www.cnblogs.com/Neeo/articles/11204572.html
n = 10
# print('*'.center(8, '-'))
for i in range(1, n+1):
    # sign = "*" * i
    # print(sign)
    print(format('*' * i, '<10'))

9. 等腰三角形

n = 10
for i in range(1, n + 1, 2):
    # sign = '*' * i
    # print(sign.center(n))
    print(format('*' * i, '^10'))

10. 正方形

for i in range(1, 6):
    sign = '*' * 5
    print(sign.center(5))

11. 菱形

第一种方法:

n = 10
for i in range(1, n + 1, 2):
    # sign = '*' * i
    # print(sign.center(n))
    print(format('*' * i, '^10'))
# n = 10
for i in range(n + 1, 0, -2):
    # sign = '*' * i
    # print(sign.center(n))
    print(format('*' * i, '^10'))

第二种方法:

n = 15
count = 1
for i in range(1, n+1):
    if n // 2 < i:
        count -= 2
        sign = '*' * count
        print(sign.center(n))
    else:
        sign = '*' * count
        print(sign.center(n))
        count += 2
;