Day4作业

2018-07-21  本文已影响67人  周zau1
  1. 求s=a+aa+aaa+aaaa+aa...a的值,其中a是⼀个数字。例如2+22+222+2222+22222(此时共有5个数相加),⼏个数相加有键盘控制。
a = int(input('请输入一个十以内的整数:'))
n = int(input('请输入需要相加的数的数量:'))
sum1 = 0
for num in range(2, n + 1):
    for x in range(num):
        sum2 = a * pow(10,x)
        sum1 += sum2
sum3 = sum1 + a
print('和为:%d' % sum3)
请输入一个十以内的整数:2
请输入需要相加的数的数量:5
和为:24690
  1. 打印图形1
n = int(input('请输入一个整数:'))
for x in range(1, n+1):
    for y in range(1, x+1):
        print('@', end='')
    print()
请输入一个整数:4
@
@@
@@@
@@@@
请输入一个整数:6
@
@@
@@@
@@@@
@@@@@
@@@@@@
  1. 打印图形2
n = int(input('请输入一个整数:'))
for x in range(1, n + 1):
    str1 =('@' * (x * 2 - 1))
    print(str1.center(n* 2 - 1), ' ')
请输入一个整数:4        
   @     
  @@@    
 @@@@@   
@@@@@@@  

Process finished with exit code 0
  1. 打印图形3
n = 3
while n > 0:
    print('@' * n)
    n -= 1
@@@
@@
@
  1. 输⼊两个正整数m和n,求其最⼤公约数和最⼩公倍数。
m = int(input('请输入第一个数字m:'))
n = int(input('请输入第二个数字n:'))
if m != n:
    if m < n :
        x = m
        m = n
        n = x
    for i in range(1, n + 1):
        if m % i == 0 and n % i == 0 :
            num_y = i
    print('最大公约数为:%d' % num_y)
    for num_b in range(m, m * n):
        if num_b % m == 0 and num_b % n == 0:
            print('最小公倍数为:%d' % num_b)
            break
else:
    print('最大公约数和最小公倍数都为:%d' % m)
请输入第一个数字m:8
请输入第二个数字n:6
最大公约数为:2
最小公倍数为:24
---------------------------------
请输入第一个数字m:8
请输入第二个数字n:8
最大公约数和最小公倍数都为:8
  1. ⼀个数如果恰好等于它的因⼦之和,这个数就称为 "完数 "。例如6=1+2+3.编程 找出1000以内的所有完数
for num in range(1, 1000):
    sum1 = 0
    for x in range(1, num):
        if num % x == 0:
            sum1 += x
    if num == sum1:
        print(num)
6
28
496
  1. 输出9*9⼝诀
for x in range(1, 10):
    for y in range(1, x + 1):
        product = x * y
        print(str(x) + '*' + str(y) + '=' + str(product), end = ' ')
    print('')
1*1=1 
2*1=2 2*2=4 
3*1=3 3*2=6 3*3=9 
4*1=4 4*2=8 4*3=12 4*4=16 
5*1=5 5*2=10 5*3=15 5*4=20 5*5=25 
6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36 
7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49 
8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64 
9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81 
  1. ⼀个5位数,判断它是不是回⽂数。即12321是回⽂数,个位与万位相同,⼗位与千位相同。
num = int(input('请输入一个五位数:'))
x = len(str(num))
if x != 5:
    print('输入有误!')
else:
    a = str(num)[0]
    b = str(num)[1]
    c = str(num)[2]
    d = str(num)[3]
    e = str(num)[4]
    if a == e and b == d :
        print('%d是回文数' % num)
    else:
        print('%d不是回文数' % num)
请输入一个五位数:364
输入有误!
------------------------
请输入一个五位数:15951
15951是回文数
------------------------
请输入一个五位数:15948
15948不是回文数
  1. 打印图形(菱形)
n = int(input('请输入一个整数:'))
for x in range(1, n + 1):
    str1 =('@' * (x * 2 - 1))
    print(str1.center(n* 2 - 1), ' ')
for y in range(n - 1, 0, -1):
    str2 =('@' * (y * 2 - 1))
    print(str2.center(n * 2 - 1), ' ')
请输入一个整数:4
   @     
  @@@    
 @@@@@   
@@@@@@@  
 @@@@@   
  @@@    
   @     

  1. 输⼊⼀⾏字符,分别统计出其中英⽂字⺟、空格、数字和其它字符的个数。
str1 = 'kas8678 %$ aa2'
num = 0
abc = 0
space = 0
other = 0
for x in str1:
    y = ord(x)
    if y == 32:
        space += 1
    elif 48 <= y <= 57:
        num += 1
    elif 65 <= y <= 90 or 97 <= y <= 122:
        abc += 1
    else:
        other += 1
print('数字有%d个,字母有%d个,空格有%d个,其他字符有%d个' % (num, abc, space, other))
数字有5个,字母有5个,空格有2个,其他字符有2个
上一篇 下一篇

猜你喜欢

热点阅读