python作业_作业 -- 几道简单的Python题

1、编写程序,要求生成10240个随机[0,512)之间的整数,并统计每个元素出现的次数。

2、编写程序,要求当用户输入一个列表和两个整数作为下标时,程序可以使用切片获取并输出列表中截取两个下标之间的元素组成的子列表。例如,用户输入 [4,8,5,3,9]和1,2时,程序输出[8]。

3、编写程序,要求设计一个字典,如{'Name': 12 ,'age': 20 , 'sex': 'boy'},当用户输入内容作为“键”(例如输入Name),然后输出字典“键”所对应的 “值”(输出12)。如果用户输入的“键”不在字典中(例如输入ID),则输出“您输入的键不存在”,并退出程序。

4、编写程序,要求对两个列表,编写程序将这两个列表的内容转换为字典,并且以其中一个列表中的元素为“键”,另一个列表中的元素为“值”。

(以下代码均为python2的代码,本来我也是用python3的,因为某些原因,愣是把python3换成了python2)

第一题

Lp9dyz8lx1eNaVkmCIOK5D2cBQTiP3JG.gif

Yfc8NhnrGJO7SRzwlpsbE2ygWVXv1QBx.gif

1 #!/usr/bin/python

2 #-*- coding: utf-8 -*-

3

4 importrandom5 importsys6 importos7

8 version_error_info = '请使用Python2'.decode('utf-8').encode('gbk')9 if sys.version_info >= (3, 0):10 raiseRuntimeError(version_error_info)11

12 n = 10240

13 max_int = 511

14 list = [] #保存生成的整数

15 dic = dict.fromkeys(range(max_int+1),0) #key为元素,value为出现次数

16

17 defbuild():18 for i inrange(n):19 key =random.randint(0,max_int)20 list.append(key)21 dic[key] = dic[key]+1

22

23 defshow():24 #for i in list:

25 #print(list[i])

26 for key indic:27 print key,':',dic[key]28

29 defmain():30 build()31 show()32 os.system('pause')33

34 if __name__ == '__main__':35 main()

View Code

思路:

导入random模块,调用random.randint()方法来生成随机数

用一个字典来保存每个元素出现的次数,其中key为每种元素(即[0,512)),value为每种元素个数,当然也看可以不用字典来做,直接调用python中列表的count函数如list.count(0)即可返回数字0在list中的出现次数

运行结果:

NuGCLHpzITbJc47Vf9RrjDs2QY06Ooi5.png

CP8FsiwyRb4M365WUKGzuIdm9kfYn2SO.png

第二题

Lp9dyz8lx1eNaVkmCIOK5D2cBQTiP3JG.gif

Yfc8NhnrGJO7SRzwlpsbE2ygWVXv1QBx.gif

1 #!/usr/bin/python

2 #-*- coding:utf-8 -*-

3

4 importsys5 importos6

7 version_error_info = '请使用Python2'.decode('utf-8').encode('gbk')8

9 if sys.version_info >= (3, 0):10 raiseRuntimeError(version_error_info)11

12 defbuild():13 str =raw_input()14 globallist15 list = str.split(' ')16 list = [int(list[i]) for i in range(len(list))] #将输入字符强转为整型

17

18 defshow():19 #for i in range(len(list)):

20 #print(list[i], end=' ')

21 #print()

22 start,end = map(int, raw_input().split()) #输入两个整数

23 printlist[start:end]24

25 defmain():26 build()27 show()28 os.system('pause')29

30 if __name__ == '__main__':31 main()

View Code

思路:

我这里应该有点问题,不需要将输入的字符强转为整型,不过输入两个整数还是要进行转换

运行结果:

U58XJvEVYAWmBHFMtkzTC94qINxuocSL.png

第三题

Lp9dyz8lx1eNaVkmCIOK5D2cBQTiP3JG.gif

Yfc8NhnrGJO7SRzwlpsbE2ygWVXv1QBx.gif

1 #!/usr/bin/python

2 #-*- coding: utf-8 -*-

3

4 importsys5 importos6

7 version_error_info = '请使用Python2'.decode('utf-8').encode('gbk')8

9 if sys.version_info >= (3, 0):10 raiseRuntimeError(version_error_info)11

12 dic = {'Name':12, 'age':20, 'sex':'boy'}13

14 defrun():15 whileTrue:16 key =raw_input()17 #Python3中没有has_key()方法,被__contains__()替代

18 #if dic.has_key(key):

19 if key indic:20 printdic[key]21 else:22 print '您输入的键不存在'.decode('utf-8').encode('gbk')23 break

24

25 defmain():26 run()27 os.system('pause')28

29 if __name__ == '__main__':30 main()

View Code

运行结果:

hcDyoQuNbMJgAe178TnBVlfEFOSpLUxj.png

第四题

Lp9dyz8lx1eNaVkmCIOK5D2cBQTiP3JG.gif

Yfc8NhnrGJO7SRzwlpsbE2ygWVXv1QBx.gif

1 #!/usr/bin/python

2 #-*- coding: utf-8 -*-

3

4 importsys5 importos6

7 version_error_info = '请使用Python2'.decode('utf-8').encode('gbk')8

9 if sys.version_info >= (3, 0):10 raiseRuntimeError(version_error_info)11

12 defbuild():13 global list_key #列表,元素为字典中的键

14 global list_value #列表,元素为字典中的键值

15 global dic #两个列表合并后的字典

16 global n #长度较小的列表的长度

17 str =raw_input()18 list_key = str.split(' ')19 str =raw_input()20 list_value = str.split(' ')21 dic = {} #字典声明

22 n = len(list_key) if len(list_key)

26 defshow():27 #for i in range(n):

28 #print list_key[i],':',list_value[i]

29 printdic30

31 defmain():32 build()33 show()34 os.system('pause')35

36 if __name__ == '__main__':37 main()

View Code

运行结果:(此处输入对应第三题中的字典)

XgDbhPeJT2oYtksZ8I4xFH3OiAWwN5jU.png

总结:

1、生成随机数的方法

导入random模块,调用该模块中的各种函数

2、使程序在运行结束时暂停的方法

导入os模块,调用system(“pause”)函数

3、python2中调用print函数输出含中文的字符串结果为ascii或乱码的解决

(在不同环境下情况不同,此处解决方案对应本人笔记本电脑中的环境)

在字符串后面加上“.decode('utf-8').encode('gbk')”(将ascii码转为gbk中文编码)

4、输入两个整数的方法

a, b = map(int, raw_input().split())

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值