day5 作业

1.求s=a+aa+aaa+aaaa的值,例2+22+222+2222

size = int(input('enter the list\'size:'))  //确定列表的长度
number1 = int(input('enter the number1:')) //确定列表元素的基数
list1 = []   //创建空列表1,用于存放给定的长度加基数的元素
list2 = []  //空列表2,用于实现列表元素相加的字符串输出
for x in range(1,size+1):
    list1.append(str(number1)*x)
print(list1)  //向列表1添加给定的大小与基数,字符串添加
str1 =''
sum1 = 0 //定义和的初值
for y in list1: 
    sum1+=int(y) //求列表元素的和,先转换为int型
    list2.append(y)//向列表2添加列表1的元素
    list2.append('+')//添加运算符
list2.pop()//去掉最后位的+号
for z in list2:
    str1+=str(z)//以字符单个取出列表2元素相加

print('%s = %d'%(str1,sum1))


enter the list'size:5
enter the number1:2
['2', '22', '222', '2222', '22222']
2+22+222+2222+22222 = 24690

2.打印直角三角形

number1 = int(input('enter the number1:'))
for x in range(1,number1+1):
    for y in range(1,x+1):
        print('*',end='')
    print()
    
enter the number1:5
*
**
***
****
*****

3.打印等腰三角形

number1 = int(input('enter the number1:'))
for x in range(1,number1+1):
    for y in range(number1,x,-1):
        print(' ',end='')
    for z in range(1,2*x):
        print('*',end='')
    print()

enter the number1:5
    *
   ***
  *****
 *******
*********

4.打印倒直角三角形

number1 = int(input('enter the number1:'))
for x in range(1,number1+1):
    for y in range(number1,x-1,-1):
        print('*',end='')
    print()


enter the number1:5
*****
****
***
**
*

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



6.一个数若刚好等于它的因子之和,如6=1+2+3,则它是完美数,求1000以内所有的完美数。



7.输出九九乘法表

for x in range(1,10):
    for y in range(1,x+1):
        print('%d*%d=%d'%(x,y,x*y),end=' ',sep='\t')
    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 

8.一个五位数判断它是不是回文数字,12321


number = int(input('enter the number:'))
str1 = str(number)
str2 = str1[::-1]
if number<10000 or number>99999:
    print('input error!')
elif number == int(str2):
    print('yes!')
else:
    print('no')

enter the number:12321
yes!

9.打印菱形

for x in range(1,5):
    for y in range(5,x+1,-1):
        print(' ',end='')
    for z in range(1,2*x):
        print('*',end='')
    print()
for x in range(1,4):
    for a in range(1,x+1):
        print(' ',end='')
    for b in range(1,2*(4-x)):
        print('*',end='')
    print()

   *
  ***
 *****
*******
 *****
  ***
   *
[Finished in 0.2s]

10.输入一个字符串,判断有几个空格,几个数字,几个英文字母,几个其他字符。


str1 = input('enter the str:')
index1 = str1.count(' ',0,len(str1))
count1 = 0
count2 = 0
count3 = 0
for x in range(0,len(str1)):
    str2 = str1[x]
    if str2.isdigit()==True:
        count1+=1
    elif str2.isalpha()==True:
        count2+=1
    else:
        count3 = len(str1) - index1 - count1 - count2
print('该字符串有%d个数字,%d个字母,%d个其他字符,%d个空格'%(count1,count2,count3,index1))

enter the str:1 2 abd__*&
该字符串有2个数字,3个字母,4个其他字符,2个空格

11.已知一个列表,求中心元素


n = int(input('enter the number\'s size:'))
numbers = []
for x in range(0,n):
    data = input('enter the numbers\'s data:')
    numbers.append(data)
print(numbers)
if len(numbers)%2!=0:
    index1 = len(numbers)//2
    print('中心元素:%s'%numbers[index1])
else:
    index2 = len(numbers)//2
    print('中心元素:%s,%s'%(numbers[index2-1],numbers[index2]))

enter the number's size:5
enter the numbers's data:1
enter the numbers's data:2
enter the numbers's data:3
enter the numbers's data:4
enter the numbers's data:5
['1', '2', '3', '4', '5']
中心元素:3

12.已知一个列表求所有元素和

n = int(input('input the size:'))
numbers = []
sum1 = 0
for x in range(0,n):
    str1 = input('input the data:')
    numbers.append(str1)
    sum1+=int(numbers[x])

print(numbers)
print(sum1)

input the size:5
input the data:2
input the data:3
input the data:4
input the data:5
input the data:6
['2', '3', '4', '5', '6']
20

13.已知一个列表,输出奇数下标元素

numbers = [1,2,3,4,5,6,7,8]
print('偶数',numbers[0:len(numbers):2])
print('奇数',numbers[1:len(numbers):2])

偶数 [1, 3, 5, 7]
奇数 [2, 4, 6, 8]
[Finished in 0.2s]

14.已知一个列表输出列表中值为奇数的

numbers = [2,434,67,24,658,32,37,347]
for x in numbers:
    if int(x%)2!=0:
        print(x)

67
37
347
[Finished in 0.3s]

15.已知列表,所有元素*2

numbers = [2,435,5,7,8,9,322]
numbers1 = []
for x in numbers:
    numbers1.append(int(x)*2)
print(numbers1)
    
[4, 870, 10, 14, 16, 18, 644]
[Finished in 0.2s]

16.已知一个列表将所有元素加到第一个元素的位置

17.已知一个列表,将奇数位元素与偶数位元素分开保存到2个新列表中。

number1 = [1,2,3,4,5,6]
number2 = []
number3 = []
for x in range(0,len(number1)):
    if x%2!=0:
        
        number2.append(number1[x])
    elif x%2==0:
        
        number3.append(number1[x])
print('奇数',number2)
print('偶数',number3)

奇数 [2, 4, 6]
偶数 [1, 3, 5]
[Finished in 1.7s]

18.把A列表前5个元复制到B列表中

numbers = [1,2,3,4,5,6,7]
number1 = []
number2 = []
for x in range(0,5):
    number1.append(numbers[x])
number2 = numbers[0:5].copy()
print(number2)
print(number1)

[1, 2, 3, 4, 5]
[1, 2, 3, 4, 5]
[Finished in 1.5s]

19.把1-36分别放入列表中,计算列表对角线元素之和 6*6列表。



20.列表排序

numbers = []
for _ in range(10):
    number = int(input('input number:'))
    numbers.append(number)
numbers.sort()
print(numbers)

input number:1
input number:3
input number:2
input number:5
input number:4
input number:6
input number:9
input number:8
input number:10
input number:7
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

21.删除列表中某个元素

numbers = [1,2,3,4,5,6,7,8,9,0]
numbers.pop(2)
print(numbers)

[1, 2, 4, 5, 6, 7, 8, 9, 0]
[Finished in 0.4s]

22.列表长度为10 ,递增排列,插入一个数,按递增排。

numbers = [0,2,4,6,8,10,12,14,16,18]
numbers.append(int(3))
numbers.sort()
print(numbers)

[0, 2, 3, 4, 6, 8, 10, 12, 14, 16, 18]
[Finished in 0.2s]


numbers = [1,22,3,52,4,5,445,63,48,60]
for x in range(0,len(numbers)):
    for y in range(0,len(numbers)-x-1):
        if numbers[y]<numbers[y+1]:
            temp = numbers[y]
            numbers[y] = numbers[y+1]
            numbers[y+1] = temp
print(numbers)

[445, 63, 60, 52, 48, 22, 5, 4, 3, 1]

23.列表为10,去重

numbers = [1,2,3,3,4,2,3,2,5,6,1]
new_ids = []
for id in numbers:
    if id not in new_ids:
        new_ids.append(id)
print(new_ids)

[1, 2, 3, 4, 5, 6]

24.删除列表中下标3-6的元素

numbers = [1,2,3,3,4,2,3,2,5,6,1]
del numbers[3:6]
print(numbers)

[1, 2, 3, 3, 2, 5, 6, 1]

25.已知列表a,b 定义c,c包含a,b 去重

a = [1,2,4,6,7]
b = [2,3,4,5,6,9]
c = []
for x in range(0,len(a)):
    if a[x] not in c:
        c.append(a[x])
for y in range(0,len(b)):
    if b[y] not  in c:
        c.append(b[y])
print(c)

[1, 2, 4, 6, 7, 3, 5, 9]

学生管理系统

'''
系统对应的大的容器是字典--->字典中的某一个key对应的值是所有的学生
每个学生是一个字典{'student':[{学生1},{学生2},{学生3}]}
'''
# system_info={'student':[{key_name:value,key_id:value,key_tel:value,key_age:value},{},{}]}
key_all_student = 'students'
system_info = {}
key_name = 'name'
key_age = 'age'
key_tel = 'tel'
key_id = 'id'
# number表示有几个学生用来随机生成学生学号
number = 0
while True:
    print('='*30)
    print('欢迎进入学生管理系统')
    print('1.添加学生\n2.查看学生信息\n3.删除学生\n4.修改学生信息\n0.退出')
    print('='*30)
    choose = input('选择操作!:')
    if choose=='0':
        break
    if choose=='1':
        while True:
            print('==添加学生==')

            add_name = input('姓名')
            add_age = input('年龄')
            add_tel = input('电话')
            # 产生学号
            number+=1
            add_id = 'cd1805'+str(number).rjust(3,'0')
            # 创建学生(一个学生就是一个字典)
            add_student = {key_name:add_name,key_age:add_age,key_tel:add_tel,key_id:add_id}
            # 获取存学生的容器
            all_student=system_info.get(key_all_student)
            # 判断system_info容器是否为空,为二次添加判断
            if  all_student == None:
                all_student = []
            all_student.append(add_student)
            system_info[key_all_student]=all_student
            print('添加学生%s成功'%add_name)
        #   给出选择
            print(system_info)
            print('1.继续添加')
            print('2.返回上一级')
            choose1 = int(input('选择操作'))
            if choose1!=1 or choose1==2:
                break

        continue
    if choose=='2':
        while True:
            print('查看学生\n1.按姓名查找\n2.查找所有信息\n3.根据学号查看\n4.返回上一层')
            choose2 = input('选择操作')
            flag =False
            # flag表示是否找不到学生
            if choose2=='1':
                name = input('请输入姓名')
                for student in all_student:
                    if name==student[key_name]:
                        print(student)
                        flag = True
                if flag==False:
                    print('没找到学生信息!')


            # 如果学生名字和输入名字相同,打印学生信息

            if choose2=='2':
                # print(system_info)
                all_student=system_info.get(key_all_student)
                # 系统还没有添加学生
                # or和and的短路操作:
                # 表达式1 or表达式2:如果表达式1位True,那么不会执行2,结果为True
                # 表达式1 and 表达式2:表达式1值为False,不会执行表达式2,结果为False
                if (not all_student) or (not len(all_student)):
                    print('系统中没有学生')
                    break
                #有学生时
                for student in all_student:
                    print('姓名:%s,年龄:%s,学号:%s,电话:%s'%\
                          (student[key_name],student[key_age],student[key_id],student[key_tel]))

            if choose2=='3':
                idnum = input('请输入学号')
                flag = False
                for student in all_student:
                    if idnum==student[key_id]:
                        print(student)
                        flag=True
                if flag==False:
                    print('没有找到学生信息')
            if choose2=='4':
                print('返回上一层')
                break
    if choose=='3':
        while True:
            print('删除学生\n1.根据姓名删除\n2.根据学号删除\n3.返回上级')
            choose3 = input('选择操作')
            all_student = system_info.get(key_all_student)
            if (not all_student) or (not len(all_student)):
                print('该系统没有学生')
                break
            if choose3=='1':
                name = input('输入要删除的学生姓名')
                flag = False
                list1 = []
                for student in all_student:
                    if name==student[key_name]:
                        list1.append(student)

            #   学生可能存在重名,所以需要把满足条件的姓名取出来,单独存放,再继续判断
                if not len(list1):
                    print('没有找到相关学生')
                    continue
                # 打印所有需要删除的学生
                index1 = 0
                for student in list1:
                    print(index1,student)
                    index1+=1
                index2 = int(input('请选择要删除的学生的标号0-%d'%\
                               (len(list1)-1)))
                del_student = list1[index2]
            #   从系统中删除学生
                system_info[key_all_student].remove(del_student)


            if choose3=='2':
                idnum = input('输入你要删除的学生学号')
                all_student = system_info.get(key_all_student)
                if (not all_student) or (not len(all_student)):
                    print('该系统没有学生')
                    break
                for x in all_student[:]:
                    if idnum==x[key_id]:
                        system_info[key_all_student].remove(x)
                print(system_info)

            if choose3=='3':
                break
    if  choose=='4':
        while True:
            print('修改学生信息\n1.按姓名修改\n2.按学号修改\n3.返回上一级')
            all_student = system_info.get(key_all_student)
            if (not all_student) or (not len(all_student)):
                print('该系统没有学生')
                break
            choose4 = input('选择操作:')
            if choose4=='1':
                name = input('输入你要修改的学生姓名:')
                flag = False
                list1 = []
                for student in all_student:
                    if name == student[key_name]:
                        list1.append(student)
                index1 = 0
                for student in list1:
                    print(index1, student)
                    index1 += 1
                index2 = int(input('请选择要修改的学生的标号0-%d' % \
                                   (len(list1) - 1)))
                update_student = list1[index2]
                suoyin1 = system_info[key_all_student].index(update_student)
                while True:
                    print('选择你要修改哪些学生信息:\n1.姓名\n2.年龄\n3.电话\n4.学号\n5.返回上级')
                    choose5 = input('选择操作')
                    if choose5=='1':
                        system_info[key_all_student][suoyin1][key_name]=input('修改的姓名:')

                    if choose5=='2':
                        system_info[key_all_student][suoyin1][key_age] = input('修改的年龄:')
                    if choose5=='3':
                        system_info[key_all_student][suoyin1][key_tel] = input('修改的电话:')
                    if choose5=='4':
                        system_info[key_all_student][suoyin1][key_id] = input('修改的学号:')
                    if choose5=='5':
                        break
            if choose4=='2':
                numid = input('输入你要修改的学生学号:')
                for x in all_student:
                    if numid==x[key_id]:
                        suoyin2 = system_info[key_all_student].index(x)

                while True:
                    print('选择你要修改哪些学生信息:\n1.姓名\n2.年龄\n3.电话\n4.学号\n5.返回上级')
                    choose5 = input('选择操作')
                    if choose5 == '1':
                        system_info[key_all_student][suoyin2][key_name] = input('修改的姓名:')

                    if choose5 == '2':
                        system_info[key_all_student][suoyin2][key_age] = input('修改的年龄:')
                    if choose5 == '3':
                        system_info[key_all_student][suoyin2][key_tel] = input('修改的电话:')
                    if choose5 == '4':
                        system_info[key_all_student][suoyin2][key_id] = input('修改的学号:')
                    if choose5 == '5':
                        break

            if choose4=='3':
                break

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,132评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,802评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,566评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,858评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,867评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,695评论 1 282
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,064评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,705评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,915评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,677评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,796评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,432评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,041评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,992评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,223评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,185评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,535评论 2 343

推荐阅读更多精彩内容

  • 求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(...
    HavenYoung阅读 286评论 0 3
  • 求s=a+aa+aaa+aaaa+aa...a的值,其中a是⼀个数字。例如2+22+222+2222+22222(...
    晓晓的忍儿阅读 421评论 0 4
  • .bat脚本基本命令语法 目录 批处理的常见命令(未列举的命令还比较多,请查阅帮助信息) 1、REM 和 :: 2...
    庆庆庆庆庆阅读 8,043评论 1 19
  • 【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔...
    叶总韩阅读 5,126评论 0 41
  • 6 对于一个想法很多的人,焦虑产生的一个很重要原因是这些想法不能落地成为行动,但我们明白,想到说到写到执行都不同,...
    以梦为马唐诚璨阅读 244评论 3 1