Day5-作业

  1. 求s=a+aa+aaa+aaaa+aa...a的值,其中a是⼀个数字。例如2+22+222+2222+22222(此时共有5个数相加),⼏个数相加有键盘控制。
str=input('请输入基数')
mul=int(input('请输入要相加的个数'))
sum=0
for x in range(1,mul+1):
    sum+=int(str*x)
print('他们的和为%d'%(sum))

结果:

请输入基数2
请输入要相加的个数5
他们的和为24690

  1. 打印图形1
    n = 4
    @
    @@
    @@@
    @@@@
    n = 5
    @
    @@
    @@@
    @@@@
    @@@@@
str='@'
mul=int(input('请输入将要打印的层数:'))
for x in range(1,mul+1):
    str1=str*x
    print(str1.ljust(mul,' '))

结果:

请输入将要打印的层数:4
@
@@
@@@
@@@@
请输入将要打印的层数:5
@
@@
@@@
@@@@
@@@@@

  1. 打印图形2
    n = 3
    @
    @@@
    @@@@@
    n == 5
    @
    @@@
    @@@@@
    @@@@@@@
str='@'
mul=int(input('请输入将要打印的层数:'))
for x in range(1,mul+1):
    str1=str*(2*x-1)
    print(str1)

结果:

请输入将要打印的层数:3
@
@@@
@@@@@
请输入将要打印的层数:4
@
@@@
@@@@@
@@@@@@@

  1. 打印图形3
    n = 3
    @@@
    @@
    @
list1=[]
str='@'
mul=int(input('请输入将要打印的层数:'))
for x in range(1,mul+1):
    str1=str*x
    list1.insert(0,str1)
for x in list1:
    print(x)


#终极精简版:
number=int(input('>>>'))
   for x in range(number):
       str=' '*x
       print(str.rjust(number,'@'))

结果:

请输入将要打印的层数:5
@@@@@
@@@@
@@@
@@
@

  1. 输⼊两个正整数m和n,求其最⼤公约数和最⼩公倍数。
mul1=int(input('请输入第一个正整数:'))
mul2=int(input('请输入第二个正整数:'))
num1=0
num2=0
list1=[]
for x in range(1,int(max([mul1,mul2]))+1):
    if mul1%x==0 and mul2%x==0:
        list1.append(x)
num1=int(max(list1))
num2=mul1//num1*mul2//num1*num1
print('最大公约数为%d,最小公倍数为%d'%(num1,num2))

结果:

请输入第一个正整数:12
请输入第二个正整数:30
最大公约数为6,最小公倍数为60

  1. ⼀个数如果恰好等于它的因⼦之和,这个数就称为 "完数 "。例如6=1+2+3.编程 找出1000以内的所有完数
for x in range(1,1000+1):
    sum = 0
    list1=[]
    for y in range(1,x):
        if x%y==0:
            list1.append(y)
    for i in list1:
        sum+=int(i)
    if x==sum:
        print('%d是一个完数'%(x))

结果:

6是一个完数
28是一个完数
496是一个完数

  1. 输出9*9⼝诀
mul1=9
mul2=9
for x in range(1,mul1+1):
    if x==1:
        pass
    else:
        print(end='\n')
    for y in range(1,mul2+1):
        if y<=x:
            print('%d×%d=%d'%(y,x,x*y),end=' ')


修正位置:
mul1=9
mul2=9
for x in range(1,mul1+1):
    for y in range(1,x+1):
        if y==1:
            print('%d×%d=%d'%(y,x,x*y),end=' ')
        else:
            if x*y<10:
                print('%d×%d=%d' % (y, x, x * y), end='  ')
            else:
                print('%d×%d=%d' % (y, x, x * y), end=' ')
    print()


简化版:
mul1=9
   for i in range(1,mul1+1):
       for j in range(1, i):
           if j == 1:
               print('%d×%d=%d' % (j, i, i * j), end=' ')
           else:
              print(('%d×%d=%d'% (j, i, i * j)).ljust(6, ' '), end=' ')
       print()

结果:

1×1=1
1×2=2 2×2=4
1×3=3 2×3=6 3×3=9
1×4=4 2×4=8 3×4=12 4×4=16
1×5=5 2×5=10 3×5=15 4×5=20 5×5=25
1×6=6 2×6=12 3×6=18 4×6=24 5×6=30 6×6=36
1×7=7 2×7=14 3×7=21 4×7=28 5×7=35 6×7=42 7×7=49
1×8=8 2×8=16 3×8=24 4×8=32 5×8=40 6×8=48 7×8=56 8×8=64
1×9=9 2×9=18 3×9=27 4×9=36 5×9=45 6×9=54 7×9=63 8×9=72 9×9=81

修正位置:

1×1=1 
1×2=2 2×2=4  
1×3=3 2×3=6  3×3=9  
1×4=4 2×4=8  3×4=12 4×4=16 
1×5=5 2×5=10 3×5=15 4×5=20 5×5=25 
1×6=6 2×6=12 3×6=18 4×6=24 5×6=30 6×6=36 
1×7=7 2×7=14 3×7=21 4×7=28 5×7=35 6×7=42 7×7=49 
1×8=8 2×8=16 3×8=24 4×8=32 5×8=40 6×8=48 7×8=56 8×8=64 
1×9=9 2×9=18 3×9=27 4×9=36 5×9=45 6×9=54 7×9=63 8×9=72 9×9=81 
  1. ⼀个5位数,判断它是不是回⽂数。即12321是回⽂数,个位与万位相同,⼗位与千位相同。
mul=input('请输入一个五位数:')
if mul[0]==mul[4] and mul[1]==mul[3]:
    print('%d是回文数'%(int(mul)))
else:
    print('%d不是回文数' %(int(mul)))

结果:

请输入一个五位数:12321
12321是回文数

  1. 打印图形(菱形)
    n = 4
    @
    @@@
    @@@@@
    @@@@@@@
    @@@@@
    @@@
    @
mul=int(input("请输入半径:"))
str='@'
num=2
for x in range(1,2*mul):
    if x<=mul:
        str1=str*(2*x-1)
        print(str1)
    else:
        str1=str*(2*(x-num)-1)
        num+=2
        print(str1)

结果:

请输入半径:4
@
@@@
@@@@@
@@@@@@@
@@@@@
@@@
@
请输入半径:5
@
@@@
@@@@@
@@@@@@@
@@@@@@@@@

@@@@@@@
@@@@@
@@@
@

  1. 输⼊⼀⾏字符,分别统计出其中英⽂字⺟、空格、数字和其它字符的个数
str1=input('请输入一行字符')
list1=list(str1)
print('输入的字符串为:%s'%(list1))
sum1=0
sum2=0
sum3=0
sum4=0
for x in list1:
    str2=str(x)
    if str2!=' ':#判断空格
        if str2.isnumeric():# 判断数字
            sum2+=1
        elif str2.isalpha():#判断字母
            sum3+=1
        else:#判断其他字符
            sum4+=1
    else:#判断空格
        sum1+=1
print('空格有%d个'%(sum1),'数字有%d个'%(sum2),'字母有%d个'%(sum3),'其他符号有%d个'%(sum4),)

结果:

请输入一行字符fas sf32352 '3'42sdfs
输入的字符串为:['f', 'a', 's', ' ', 's', 'f', '3', '2', '3', '5', '2', ' ', "'", "'", '4', '2', 's', 'd', 'f', 's']
空格有2个 数字有7个 字母有9个 其他符号有2个

列表作业

1.已知⼀个列表,求列表中⼼元素。

str1=input('请输入元素:')
list1=list(str1)
long=len(list1)
if long%2==0:
    print('中⼼元素是%s和%s'%(list1[int(long/2)-1],list1[int(long/2)]))
else:
    print('中⼼元素是%s'%(list1[int((long-1)/2)]))

结果:

请输入元素:gfdg
中⼼元素是f和d

2.已知⼀个列表,求所有元素和。

str1=input('请输入元素:')
list1=list(str1)
sum1=0
for x in list1:
    sum1+=ord(x)
    # sum1+=int(x)
print('所有元素的Unicode和为%d'%(sum1))
#print('所有元素的和为%d'%(sum1))

结果:

请输入元素:fsd6546 '''.ye
所有元素的Unicode和为947
请输入元素:34646354
所有元素的和为35

3.已知⼀个列表,输出所有奇数下标元素。

list1=list(input("请输入元素:"))
print('添加列表:%s'%(list1))
long=len(list1)
for x in range(1,long,2):
    print('奇数下标值:%s'%(list1[x]))

结果:

请输入元素:sdf34asd
添加列表:['s', 'd', 'f', '3', '4', 'a', 's', 'd']
奇数下标值:d
奇数下标值:3
奇数下标值:a
奇数下标值:d

4.已知⼀个列表,输出所有元素中,值为奇数的。

mul1=int(input('请输入数据长度:'))
list1=[]
for x in range(mul1):
    mul2 = int(input('请输入第%d整型数字:'%(mul1)))
    list1.append(mul2)
print('整型数字列表:%s'%(list1))
for x in list1:
    if int(x)%2:
        print('元素%d的值为奇数'%(int(x)))

结果:

请输入数据长度:5
请输入第5整型数字:21
请输入第5整型数字:44
请输入第5整型数字:36
请输入第5整型数字:77
请输入第5整型数字:99
整型数字列表:[21, 44, 36, 77, 99]
元素21的值为奇数
元素77的值为奇数
元素99的值为奇数

5.已知⼀个列表,将所有元素乘⼆。

list1=list(input("请输入元素"))
print('添加列表元素:%s'%(list1))
for x in range(len(list1)):
    list1[x]*=2
print('输出列表:',end='')
print(list1)

结果:

请输入元素dfs3435sdf''
添加列表元素:['d', 'f', 's', '3', '4', '3', '5', 's', 'd', 'f', "'", "'"]
输出列表:['dd', 'ff', 'ss', '33', '44', '33', '55', 'ss', 'dd', 'ff', "''", "''"]

6.已知⼀个列表,将所有元素加到第⼀个元素中。

str1=input("请输入元素")
list1=list(str1)
print(list1)
while len(list1)!=1:
    list1[0]+=list1.pop()
print(list1)

结果:

请输入元素west3456
['w', 'e', 's', 't', '3', '4', '5', '6']
['w6543tse']

7.已知⼀个列表A,将奇数位置元素存到B列表中,偶数元素存到C列表中。

A=input('请输入一个列表:')
print('添加列表:%s'%(A))
B=[]
C=[]
for x in range(1,len(A),2):
    B.append(A[x])
for y in range(0,len(A),2):
    C.append(A[y])
print('A列表奇数位置输出列表B=%s'%(B))
print('A列表偶数位置输出列表C=%s'%(C))

结果:

请输入一个列表:gsdt345rwer325
添加列表:['g', 's', 'd', 't', '3', '4', '5', 'r', 'w', 'e', 'r', '3', '2', '5']
A列表奇数位置输出列表B=['s', 't', '4', 'r', 'e', '3', '5']
A列表偶数位置输出列表C=['g', 'd', '3', '5', 'w', 'r', '2']

8.把A列表的前5个元素复制到B列表中。

A=list(input('请输入一个列表长度大于5的列表:'))
print('输入的列表%s'%(A))
B=A[0:5].copy()
print(B)

结果:

请输入一个列表长度大于5的列表:fa5s5dgadter2353
输入的列表['f', 'a', 's', 'd', 'g', 'a', 'd', 't', 'e', 'r', '2', '3', '5', '3']
['f', 'a', 's', 'd', 'g']

9.把1----36分别放⼊列表中,计算列表数组对⻆元素之和。6 * 6的列表

list1=[]
sum1=0
sum2=0
sum3=0
for _ in range(6):
    list2=[]
    for _ in range(6):
        sum1+=1
        list2.append(sum1)
    list1.append(list2)
for x in range(6):
    for y in range(6):
        if x==y:
            sum2+=int(list1[x][y])
        if x+y==5:
            sum3+=int(list1[x][y])
print('两个对角线的值分别为%d及%d'%(sum2,sum3))

结果:

两个对角线的值分别为111及111

10.有⼀个⻓度是10的列表,列表内有10个不重复的数字,要求按从⼤到⼩排序。

list1=[]
for x in range(10):
    mul1=int(input('请输入第%d个没有输入过的数字:'%(x+1)))
    list1.append(mul1)
print('添加列表完成:%s'%(list1))
list1.sort(reverse=True)
print('排序后的列表:%s'%(list1))

结果:

请输入第1个没有输入过的数字:11
请输入第2个没有输入过的数字:33
请输入第3个没有输入过的数字:22
请输入第4个没有输入过的数字:5
请输入第5个没有输入过的数字:44
请输入第6个没有输入过的数字:55
请输入第7个没有输入过的数字:88
请输入第8个没有输入过的数字:66
请输入第9个没有输入过的数字:9
请输入第10个没有输入过的数字:70
添加列表完成:[11, 33, 22, 5, 44, 55, 88, 66, 9, 70]
排序后的列表:[88, 70, 66, 55, 44, 33, 22, 11, 9, 5]

11.有⼀个⻓度是10的列表,要求删除某⼀个位置的元素

list1=[]
for x in range(10):
    mul1=input('请输入第%d个元素:'%(x+1))
    list1.append(mul1)
print(list1)
mul2=int(input('请输入要删除元素的位置1-10:'))
del list1[mul2-1]
print(list1)

结果:

请输入第1个元素:234
请输入第2个元素:dfg
请输入第3个元素:xvxc
请输入第4个元素:78978
请输入第5个元素:hdf
请输入第6个元素:wr

请输入第7个元素:45
请输入第8个元素:hfj
请输入第9个元素:dgdh
请输入第10个元素:dfgd
['234', 'dfg', 'xvxc', '78978', 'hdf', 'wr', '45', 'hfj', 'dgdh', 'dfgd']
请输入要删除元素的位置1-10:2
['234', 'xvxc', '78978', 'hdf', 'wr', '45', 'hfj', 'dgdh', 'dfgd']

12.有⼀个⻓度是10的列表,按递增排列,⽤户输⼊⼀个数,插⼊适当位置。

list1=[]
for x in range(10):
    mul1=int(input('请输入第%d个没有输入过的数字:'%(x+1)))
    list1.append(mul1)
print('列表:%s'%(list1))
list1.sort(reverse=False)
print('排序后的列表:%s'%(list1))
mul2=int(input("请用户输入要插入的位置:"))
mul3=int(input("请用户输入要插入的元素:"))
list1.insert(mul2-1,mul3)
print('添加后的列表:%s'%(list1))
list1.sort(reverse=False)
print('排序后的列表:%s'%(list1))

结果:

请输入第1个没有输入过的数字:11
请输入第2个没有输入过的数字:2
请输入第3个没有输入过的数字:33
请输入第4个没有输入过的数字:44
请输入第5个没有输入过的数字:55
请输入第6个没有输入过的数字:66
请输入第7个没有输入过的数字:56
请输入第8个没有输入过的数字:32
请输入第9个没有输入过的数字:45
请输入第10个没有输入过的数字:88
列表:[11, 2, 33, 44, 55, 66, 56, 32, 45, 88]
排序后的列表:[2, 11, 32, 33, 44, 45, 55, 56, 66, 88]
请用户输入要插入的位置:2
请用户输入要插入的元素:90
添加后的列表[2, 90, 11, 32, 33, 44, 45, 55, 56, 66, 88]
排序后的列表:[2, 11, 32, 33, 44, 45, 55, 56, 66, 88, 90]

13.有⼀个⻓度是10的列表,数组内有10个⼈名,要求去掉重复的

list1=[]
for x in range(10):
    name=input('请输入第%d个名字:'%(x+1))
    list1.append(name)
print('姓名列表:%s'%(list1))
list2=list1.copy()
list3=[]
num=0
for x in range(len(list2)):
    if x not in list3:
        for y in range(x + 1, len(list2)):
            if list2[x] == list2[y]:
                list3.append(y)
                del list1[y - num]
                num += 1
print('没有重复的名字的列表%s'%(list1))

结果:

请输入第1个名字:张三
请输入第2个名字:李四
请输入第3个名字:王五
请输入第4个名字:天明
请输入第5个名字:张三
请输入第6个名字:项羽
请输入第7个名字:虞姬
请输入第8个名字:张三
请输入第9个名字:李四
请输入第10个名字:张良
姓名列表:['张三', '李四', '王五', '天明', '张三', '项羽', '虞姬', '张三', '李四', '张良']
没有重复的名字的列表['张三', '李四', '王五', '天明', '项羽', '虞姬', '张良']

14.把A列表的第三到第六位之间的元素删除。

A=[]
mul1=int(input('请输入列表长度(大于6):'))
for i in range(mul1):
    str=input("请输入第%d个元素:"%(i+1))
    A.append(str)
print('输入元素为:%s'%(A))
len1=len(A)
num1=0
for x in range(len1):
    if 3<=(x+1)<=6:
        if num1==0:
            del A[x]
            num1+=1
        else:
            del A[x-num1]
            num1+=1
print("删除元素后的列表:%s"%(A))

结果:

请输入列表长度(大于6):9
请输入第1个元素:q
请输入第2个元素:w
请输入第3个元素:e
请输入第4个元素:r
请输入第5个元素:t
请输入第6个元素:y
请输入第7个元素:u
请输入第8个元素:i
请输入第9个元素:o
输入元素为:['q', 'w', 'e', 'r', 't', 'y', 'u', 'i', 'o']
删除元素后的列表:['q', 'w', 'u', 'i', 'o']

15.已知A列表,B列表,定义⼀个列表C,要求C包含A,B数组中的数据(⽆重复值)。

A=[23,46,'fdf','wer',56,23]
B=[78,90,'fdf',56,'fsd',56]
C=A.copy()+B.copy()
print('列表C:%s'%(C))
C1=C.copy()
num=0
list1=[]
for x in range(len(C1)):
    if x not in list1:
        for y in range(x+1,len(C1)):
            if C1[x]==C1[y]:
                list1.append(y)
                del C[y-num]
                num+=1
print('无重复元素%s'%(C))

结果:

列表C:[23, 46, 'fdf', 'wer', 56, 23, 78, 90, 'fdf', 56, 'fsd', 56]
无重复元素[23, 46, 'fdf', 'wer', 56, 78, 90, 'fsd']

学生管理系统

flage=True
list1=[]
while flage:
    while True:
        flage1 = False
        list = ['欢迎进入千峰学生管理系统', '', '1.添加学生', '2.查找学生', '3.删除学生', 'q.退出系统']
        for x in list:
            print(x)
        mu11 = input('>>>')
        while mu11:
            if mu11=='1':
                list2 = []
                name=input('请输入学生的姓名:')
                age=input('请输入学生的年龄:')
                photo= input('请输入学生的电话号码:')
                list2.append(name)
                list2.append(age)
                list2.append(photo)
                list1.append(list2)
                print(list1)
                print('1.继续添加')
                print('2.返回上一层')
                mul2=input('>>>')
                if mul2=='1':
                    mu11='1'
                    continue
                elif mul2=='2':
                    mu11=''
                    flage1=True
                else:
                    print('输入格式不对,请返回首页,并严格按照要求进行输入')
                    mul6=input('请输入1,继续进行操作:')
                    if mul6=='1':
                        mu11 = ''
                        flage1 = True
                    else:
                        flage1 = True
                        flage= False
                        break
            elif mu11=='2':
                print('1.查找所有学生')
                print('2.根据学生姓名差找学生')
                print('3.返回首页')
                mul3=input('>>>')
                if list1:
                    if mul3=='1':
                        for x in list1:
                            print('name:%s'%(x[0]),'age:%s'%(x[1]),'tel:%s'%(x[2]))
                    elif mul3=='2':
                        str=input('请输入姓名:')
                        for y in list1:
                            if str in y:
                                print('name:%s'%(y[0]),'age:%s'%(y[1]),'tel:%s'%(y[2]))
                    elif mul3=='3':
                        mu11=''
                        flage1=True
                    else:
                        print('输入格式不对,请返回首页,并严格按照要求进行输入')
                        mul6 = input('请输入1,继续进行操作:')
                        if mul6 == '1':
                            mu11 = ''
                            flage1 = True
                        else:
                            flage1 = True
                            flage = False
                            break
                else:
                    print('没有保存学生信息,请返回首页去设置')
                    mul6 = input('请输入1,继续进行操作:')
                    if mul6 == '1':
                        mu11 = ''
                        flage1 = True
                        break
                    else:
                        flage1 = True
                        flage = False
                        break
            elif mu11=='3':
                name_del=input('请输入要删除学生的姓名:')
                num = 0
                if list1:
                    for x in list1:
                        if name_del in x:
                            print('%d '%(num),'name:%s'%(x[0]),'age:%s'%(x[1]),'tel:%s'%(x[2]))
                            num+=1
                    mul4=int(input('>>>'))
                    del list1[mul4]
                else:
                    print('没有保存学生信息,请返回首页去设置')
                    mul6 = input('请输入1,继续进行操作:')
                    if mul6 == '1':
                        mu11 = ''
                        flage1 = True
                        break
                    else:
                        flage1 = True
                        flage = False
                        break
                print('1.继续删除')
                print('2.返回上一层')
                mul2 = input('>>>')
                if mul2 == '1':
                    mu11 = '3'
                    continue
                elif mul2 == '2':
                    mu11 = ''
                    flage1 = True
                else:
                    print('输入格式不对,请返回首页,并严格按照要求进行输入')
                    mul6=input('请输入1,继续进行操作:')
                    if mul6=='1':
                        mu11 = ''
                        flage1 = True
                    else:
                        flage1 = True
                        flage= False
                        break
            elif mu11=='q':
                flage=False
                flage1=True
                break
            else:
                mu15=input('没有这个选项,请重新选择')
                if '1'<=mu15<='3':
                    mu11=mu15
                    continue
        if flage1:
            break
if flage:
    pass
else:
    print('欢迎下次登录')

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