Day4作业
2018-07-21 本文已影响67人
周zau1
- 求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
n = int(input('请输入一个整数:'))
for x in range(1, n+1):
for y in range(1, x+1):
print('@', end='')
print()
请输入一个整数:4
@
@@
@@@
@@@@
请输入一个整数:6
@
@@
@@@
@@@@
@@@@@
@@@@@@
- 打印图形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
- 打印图形3
n = 3
while n > 0:
print('@' * n)
n -= 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
- ⼀个数如果恰好等于它的因⼦之和,这个数就称为 "完数 "。例如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
- 输出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
- ⼀个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不是回文数
- 打印图形(菱形)
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
@
@@@
@@@@@
@@@@@@@
@@@@@
@@@
@
- 输⼊⼀⾏字符,分别统计出其中英⽂字⺟、空格、数字和其它字符的个数。
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个