day5-练习题

2018-07-20  本文已影响89人  RurouniKenshin

1题.取a=6,n为键盘控制的相加次数

n = input('please put the n:')
s = 0
a = '6'
for i in range(1,int(n)+1):
    s += int(a*i)
print('the result is: %d' % (s))

2题.打印图形1

n = input('please put the n:')
print('the shape is:')
for i in range(1,int(n)+1):
    str = '@'*i
    print(str)

3题.打印图形2

n = input('please put the n:')
print('the shape is:')
for i in range(1,int(n)+1):
    str = '@'*(2*i-1)
    print(str.center(2*int(n)-1,' '))

4题.打印图形3

n = input('please put the n:')
print('the shape is:')
for i in range(1,int(n)+1):
    str = '@'*(int(n)+1-i)
    print(str)

5题.输入两个正整数m和n,求其最大公约数和最小公倍数。

m = input('please put the m:')
n = input('please put the n:')
count = 1
for i in range(0,int(m)):
    num1 = int(m) - i
    if (int(m) % num1 == 0) and (int(n) % num1 ==0):
        print('the greatest common divisor of %s and %s is %d'%(m,n,num1))
        break
while True:
    num2 = count*int(m)
    if num2 % int(n) == 0:
        print('the least common multiple of %s and %s is %d'%(m,n,num2))
        break
    count += 1

6题.一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如6=1+2+3.编程 找出1000以内的所有完数

list_pn = []
for i in range(1,1001):
    sum1 = 0
    for x in range(1,i):
        if i % x == 0:
            sum1 += x
    if sum1 == i:
        list_pn.append(i)
print('the list of perfect number between 1 and 1000 is:',list_pn)

7题.输出9*9口诀

for x in range(1,10):
    for y in range(1,x+1):
        print(str(y)+'x'+str(x)+'='+str(x*y),end=' ')
    print()

8题.一个5位数,判断它是不不是回文数。即12321是回文数,个位与万位相同,十位与千位相同

num = input('please put a five-digit number:')
flag = 1
for index in range(len(num)):
    if num[index] != num[len(num)-1-index]:
        flag = 0
        break
if flag == 0:
    print('%s is not a palindromic number'%(num))
else:
    print('%s is a palindromic number'%(num))

9题.打印图形(菱形)

n = input('please put the n:')
print('the shape is:')
for i in range(1,int(n)+1):
    str = '@'*(2*i-1)
    print(str.center(2*int(n)-1,' '))
for i in range(1, int(n)):
    str = '@' * (2 * (int(n)-i) - 1)
    print(str.center(2 * int(n) - 1, ' '))

10.输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。

注:经过查阅unicode码得出的各种字符的范围
数字:48 - 57 a-z:97 - 122 A-Z:65 - 90 空格:32 类型都以字符类型为准,提供一个思路

str1 = input('please put a long string: ')
list_str = list(str1)
letter_number = 0
number_number = 0
blank_number = 0
other_number = 0
for s in list_str:
    if  65 <= ord(s) <= 90 or 97 <= ord(s) <= 122:
        letter_number += 1
    elif ord(s) == 32:
        blank_number += 1
    elif 48 <= ord(s) <= 57:
        number_number += 1
    else:
        other_number += 1
print('letter_number is %d' % (letter_number))
print('blank_number is %d' % (blank_number))
print('number_number is %d' % (number_number))
print('other_number is %d' % (other_number))
上一篇 下一篇

猜你喜欢

热点阅读