专栏首页python3作业 -- 几道简单的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)

第一题

 1 #!/usr/bin/python 
 2 # -*- coding: utf-8 -*-
 3 
 4 import random
 5 import sys
 6 import os
 7 
 8 version_error_info = '请使用Python2'.decode('utf-8').encode('gbk')
 9 if sys.version_info >= (3, 0):
10    raise RuntimeError(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 def build():
18     for i in range(n):
19         key = random.randint(0,max_int)
20         list.append(key)
21         dic[key] = dic[key]+1
22 
23 def show():
24     # for i in list:
25     #     print(list[i])
26     for key in dic:
27         print key,':',dic[key]
28 
29 def main():
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中的出现次数

运行结果:

第二题

 1 #!/usr/bin/python
 2 #-*- coding:utf-8 -*-
 3 
 4 import sys
 5 import os
 6 
 7 version_error_info = '请使用Python2'.decode('utf-8').encode('gbk')
 8 
 9 if sys.version_info >= (3, 0):
10    raise RuntimeError(version_error_info)
11 
12 def build():
13     str = raw_input()
14     global list
15     list = str.split(' ')
16     list = [int(list[i]) for i in range(len(list))]   # 将输入字符强转为整型
17 
18 def show():
19     # for i in range(len(list)):
20     #     print(list[i], end=' ')
21     # print()
22     start,end = map(int, raw_input().split())   # 输入两个整数
23     print list[start:end]
24 
25 def main():
26     build()
27     show()
28     os.system('pause')
29     
30 if __name__ == '__main__':
31     main()

View Code

思路:

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

运行结果:

第三题

 1 #!/usr/bin/python 
 2 # -*- coding: utf-8 -*-
 3 
 4 import sys
 5 import os
 6 
 7 version_error_info = '请使用Python2'.decode('utf-8').encode('gbk')
 8 
 9 if sys.version_info >= (3, 0):
10    raise RuntimeError(version_error_info)
11 
12 dic = {'Name':12, 'age':20, 'sex':'boy'}
13 
14 def run():
15     while True:
16         key = raw_input()
17         # Python3中没有has_key()方法,被__contains__()替代
18         # if dic.has_key(key):
19         if key in dic:
20             print dic[key]
21         else:
22             print '您输入的键不存在'.decode('utf-8').encode('gbk')
23             break
24 
25 def main():
26     run()
27     os.system('pause')
28     
29 if __name__ == '__main__':
30     main()

View Code

运行结果:

第四题

 1 #!/usr/bin/python 
 2 # -*- coding: utf-8 -*-
 3 
 4 import sys
 5 import os
 6 
 7 version_error_info = '请使用Python2'.decode('utf-8').encode('gbk')
 8 
 9 if sys.version_info >= (3, 0):
10    raise RuntimeError(version_error_info)
11 
12 def build():
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)<len(list_value) else len(list_value)
23     for i in range(n):
24         dic[list_key[i]]=list_value[i]
25 
26 def show():
27     # for i in range(n):
28     #     print list_key[i],':',list_value[i]
29     print dic
30 
31 def main():
32     build()
33     show()
34     os.system('pause')
35     
36 if __name__ == '__main__':
37     main()

View Code

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

总结:

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 条评论
登录 后参与评论

相关文章

  • python爬虫之12306网站--火车

    1.火车票信息查询是基于车站信息查询,先完成车站信息查询,然后根据车站信息查询生成的url地址去查询当前已知出发站和目的站的所有车次车票信息

    py3study
  • Python练习【2】

    py3study
  • eigrp_lab3

    key chain ccna  key 1   key-string cisco call rsvp-sync !

    py3study
  • 基于Django的电子商务网站开发(连载26)

    登录用户通过调用语句my_chart_list= util.add_chart(request)把商品放入购物车中。在产品代码Util类中的add_chart(...

    小老鼠
  • 【自然语言处理】利用朴素贝叶斯进行新闻分类(自己处理数据)

    采用的是sogou语料库的部分数据,每个C开头的文件各代表一类,里面包含着若干篇txt类型的文章,具体类别如下:

    绝命生
  • Python实现密钥密码(加解密)实例详解

    到此这篇关于Python实现密钥密码(加解密)的文章就介绍到这了,更多相关python 密钥密码内容请搜索ZaLou.Cn以前的文章或继续浏览下面的相关文章希望...

    砸漏
  • Redis源码解析——双向链表

            相对于之前介绍的字典和SDS字符串库,Redis的双向链表库则是非常标准的、教科书般简单的库。但是作为Redis源码的一部分,我决定还是要讲一讲...

    方亮
  • [源码分析] 从实例和源码入手看 Flink 之广播 Broadcast

    对黑名单中的IP进行检测过滤。IP黑名单的内容会随时增减,因此是可以随时动态配置的。

    罗西的思考
  • 【快学springboot】14.操作redis之list

    之前讲解了springboot(StringRedisTemplate)操作redis的string数据结构,这篇文章将会讲解list数据结构

    Happyjava
  • python多进程,全局变量未更新问题

    问题:子进程全局变量没有按照预想的更新,导致数据没有写入磁盘。进程池必须在if __name__ == '__main__'下面使用 复现:见实验代码 环境:c...

    py3study

扫码关注云+社区

领取腾讯云代金券