day06-作业

1. 求s=a+aa+aaa+aaaa+aa...a的值,其中a是⼀个数字。例如2+22+222+2222+22222(此时共有5个数相加),⼏个数相加有键盘控制。

"""

n = int(input('请输入n的值:'))
a = int(input('请输入a的值:'))
x = 0
y = a
for i in range(n):
    x += y
    y = y*10 + a

print(x)
"""

2.打印图形1

"""
n = 4
@
@@
@@@
@@@@
n = 5
@
@@
@@@
@@@@
@@@@@
"""
"""

print('-----------')
n = int(input('请输入n的值:'))
a = str(input('请输入你要打印的符号:'))
i = 1  #相当于行数,要打印多少行的指定符号
while i <= n:  # 1  2  3  4  5
    print(a*i)  #第一行打印一个符号a,while循环遍历,直到第n行
    i += 1


print('----------')
"""

"""


print('n=',n)
for i in range(n):
    for j in range(0,i+1):
        print(a,end="")
    print('')
"""

3. 打印图形2

"""
n = 3
@
@@@
@@@@@
n == 5
@
@@@
@@@@@
@@@@@@@
"""

-----------------------java方法------------------------------

"""
n = int(input('请输入n的值:'))
a = str(input('请输入你要打印的符号:'))
print('n=',n)
for i in range(n):
    for space in range(n-i):
        print(' ',end='')
    for star in range(2*i-1):
        print(a,end='')
    print('\n',end='')
"""
#-----------------------python方法----------------------------
#while循环
"""
print('======用while循环打印等腰三角形=========')
n = int(input('请输入n的值:'))
a = str(input('请输入你要打印的符号:'))
i = 1 #行数
print('n=',n)
while i <=n:
    print(' '*(n-i),a*(2*i-1))
    i += 1
"""
#---------------------------------------------------------------
#for循环
"""
print('======用for循环打印等腰三角形=========')
n = int(input('请输入n的值:'))
a = str(input('请输入你要打印的符号:'))
print('n=',n)
for i in range(1,n+1):
    print(' '*(n - i),a*(2*i-1))
"""

-----------------------------------------------------------------

4.打印图形3

"""
n = 3
@@@
@@
@
"""

print('======用for循环打印倒三角形=========')
n = int(input('请输入n的值:'))
a = str(input('请输入你要打印的符号:'))
print('n=',n)
for i in range(n,0,-1):
    print(a*i)

-----------------------------------------------------------------

5. 输⼊两个正整数m和n,求其最⼤公约数和最⼩公倍数。

print('======请输入两个正整数m,n=========')
m = int(input('请输入正整数m的值:'))
n = int(input('请输入正整数n的值:'))
def hcf(m,n):
    if m > n:
        smaller = n
    else:
        smaller = m
    for i in range(1,smaller+1):
        if m % i ==0 and n % i == 0 :
            hcf = i

    return hcf


def lcm(m, n):
    #  获取最大的数
    if m > n:
        greater = m
    else:
        greater = n

    while (True):
        if ((greater % m == 0) and (greater % n == 0)):
            lcm = greater
            break
        greater += 1

    return lcm

print('%d和%d的最大公约数是' % (m,n) , hcf(m,n))
print('%d和%d的最小公倍数是' % (m,n) , lcm(m,n))

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

完数

n = int(input('请输入正整数n的值:'))
#------------求所有因子-----------
def allFactor(n):
    list1 = []
    i = 1
    while i < n:
        if n%i == 0:
            list1.append(i)
        i += 1
    return list1
print(allFactor(n))  #输出所有因子

-------求1-1000所有完数-----------

for i in range(1,1000):
    s=0
    for k in range(1,i):
        if i%k==0:
            s=s+k
    if i==s:
        print(i)

6.输出99乘法表

for i in range(1,10):
    for j in range(1,i+1):
        print('%d*%d=%2d' %(i,j,i*j),end=' ')
    for k in range(i, 10):
        print(end="       ")
    print('')

1. ⼀个5位数,判断它是不是回⽂数。即12321是回⽂数,个位与万位相同,⼗位与千位相同。

下标实现

s = input('请输入一个字符串:')
a = len(s) #输入的字符串的长度
i = 0      #下标从0开始
count = 1
while i <= (a/2):    #判断是否是回文
    if s[i] == s[a-i-1]:
        count = 1
        i += 1
    else:
        count = 0
        break

if count == 1:
    print('您所输入的字符串是回文')
else:
    print('您所输入的字符串不是回文')

打印菱形

print('======用for循环打印菱形=========')
n = int(input('请输入n的值:'))
a = str(input('请输入你要打印的符号:'))
print('n=',n)
for i in range(1,n+1):
    print(' '*(n - i),a*(2*i-1))
for i in range(1,n+1):
    print(' '*(i),a*(2*(n-i-1)+1))  # - -。。。为啥是2*(n-i-1)+1呢

3. 输⼊⼀⾏字符,分别统计出其中英⽂字⺟、空格、数字和其它字符的个数

s = input('请输入一个字符串:')
str_num = 0
spac_num = 0
figue_num = 0

for strs in s:
    if strs.isalpha():
        str_num += 1
    elif strs.isdigit():
        figue_num += 1
    elif strs == ' ':
        spac_num += 1
    else:
        pass
print('英文字母有:%d' % str_num)
print('数字有:%d' % figue_num)
print('空格有:%d' % spac_num)

你可能感兴趣的:(day06-作业)