题目来自 白月黑羽
一.对象与数字对象
题目1
请大家写一行代码,计算并打印出 993 + 196 的和, 乘以 7 的积, 然后除以3
这行代码 先在Python交互式命令行中运行
再将代码存入文件,用Python解释器去执行该文件
题目2
请大家写一行代码,计算并打印出 993 + 196 的和,乘以 7 的积, 然后除以3 的 商 和 余数
将代码存入文件,用Python解释器去执行该文件
题目3
请大家写一行代码,查看对象 'abc' 的类型
将代码存入文件,用Python解释器去执行该文件
二、变量与注释
题目1
判断下面的说法是否正确
-
变量就像是对象的名字,程序代码访问对象,可以通过变量名去访问对象。
-
没有任何引用的对象,会被Python解释器清除
-
num = num + 5 可以简写为 num += 5
-
在Python语言 中 ,所有类型的数据都是对象
-
解释器执行完下面的3代码后
a1 = '老黑'
a2 = a1
a1 = '老白'
变量a2的值,也会变成 '老白' , 因为 第2行代码 让 a1 和 a2 都对应同一个对象了, a1变了,a2也会跟着变。
题目2
如下的变量命名中,错误的有哪些
你好
a
1a
ok
my_1
my-1
1_my
1-my
name2age
题目3
在python交互式命令行,执行如下Python语句,解释器报错,是什么原因?
>>> var1 = 'green'
>>> print(Var1)
Traceback (most recent call last):File "<stdin>", line 1, in <module>
NameError: name 'Var1' is not defined
>>>
题目4
你们公司每月的净利润计算公式如下
( 总收入 - 会计小王薪资 - 餐饮费 - 交通费 ) * 80%
请写一段代码, 计算并打印出 每月的净利润。 代码中合理的使用变量 和注释。
具体的 收入和支出 数值可以先使用临时数字。
三、字符串
题目1
请大家写一行代码,定义一个Python字符串变量 内容为 hello world
题目2
请大家写一行代码,定义一个Python字符串变量 内容为 你好世界
题目3
请大家写一行代码,定义一个Python字符串变量 内容为 他说:'你好'
注意,字符串里面有英文的单引号
再写一行代码,定义一个Python字符串 内容为 他说:"你好"
注意,字符串里面有英文的双引号
题目4
请大家写一行代码,定义一个Python字符串变量 内容为
他说:'你
好'
注意,字符串里面有新的一行
题目5
有如下的代码,定义了一个Python字符串
str1 = '大家好,我的名字叫:黑羽白月'
请接下来写一行代码,使用字符串切片的方法 ,打印出 str1里面的人名字。
四、函数基础
题目1
如下,
def testfunc(arg1,arg2): return (arg1 + arg2)
我们这样定义一个函数后,下面哪些调用方法是错误的
testfunc(1)testfunc(1,2)testfunc(arg1=1,arg2=2)testfunc(arg2=2,arg1=1)testfunc(arg1=1,2) testfunc(1,arg2=2)print(testfunc(1,arg2=2))print(testfunc(1,arg2=2)*8)
题目2
请描述一下,下面两个函数定义
def func1(num1,num2):return num1**2 + num2**2def func2(num1,num2):print(num1**2 + num2**2)
有什么不同?
题目3
下面这段代码有什么问题?
func1(1,2)def func1(num1,num2):return num1**2 + num2**2
题目4
请开发一个函数,该函数 接受两个字符串参数,
第1个参数格式如下,
他的名字是:小王
第2个参数格式如下,
他的年龄是:18
规定参数字符串中的 人名 和 年龄 都是 两个字符
我们的函数需要 获取参数中的人名和年龄,并以这样的格式 小王:18
返回。
实现该函数后,请调用 该函数,依次传入下面的参数。
他的名字是:关羽
他的年龄是:28
他的名字是:赵云
他的年龄是:24
调用函数传参数时,分别使用 指定参数名调用
和 不指定参数名调用
的方式。
最后,将调用返回结果的返回值打印出来
五、input让用户输入信息
题目1
使用input函数输入“1 3 5” ,将三个数字分别保存在三个变量a,b,c中
题目2
使用input函数提醒用户先后输入一个国家及其首都,中间用冒号隔开,然后将国家和首都信息保存在变量country和capital中
注意:用户输入信息中的空格不作要求 例如 “ 英国 : 伦敦 ”也符合要求
六、列表与元组
题目1
有如下的代码,定义了一个Python列表 变量
var1 = [ 33, ['我的名字', '黑羽白月'], 'hello world!']
请接下来写一行代码,打印出var1这个列表变量里面的 字符串 hello world!
题目2
有如下的代码,定义了一个Python列表 变量
var1 = [ 33, ['我的名字', '黑羽白月'], 'hello world!']
请接下来写一行代码,打印出var1这个列表变量里面的 人名字 黑羽白月
题目3
有如下的代码,定义了一个Python列表 变量
var1 = [ 33, ['我的名字', '黑羽白月'], 'hello world!']
请分别用一行代码,实现:
- 修改var1这个列表变量里面的 hello world! 为 Oh my God!
- 修改var1这个列表变量里面的 人名字 黑羽白月 为 拜月童子
题目4
有如下的代码,定义了一个Python列表 变量
var1 = [ 33, ('我的名字', '黑羽白月'), 'hello world!']
请接下来写一行代码, 修改var1这个列表变量里面的 人名字 黑羽白月 为 拜月童子
题目5
判断一下,下面的 代码,执行后打印出的结果是 hello, 还是 ok
def func(arg):arg = 'hello'var = 'ok'
func(var)
print(var)
判断一下,下面的 代码,执行后打印出的结果是 ['hello'], 还是 ['ok']
def func(arg):arg[0] = 'hello'var = ['ok']
func(var)
print(var)
判断一下,下面的 代码,执行后打印出的结果是 ['hello'], 还是 ['ok']
def func(arg):arg = ['hello']var = ['ok']
func(var)
print(var)
题目6
判断下面的说法是否正确
-
列表和元组里面的元素可以是任意类型的对象,包括字符串、数字、列表、元组、函数
-
切片操作只能用在列表上,不能用在元组上,因为元组是不可改变的
-
有如下的代码,定义了一个Python列表 变量
var1 = [ 33, ['我的名字', '黑羽白月'], 'hello world!']
我们可以说 '我的名字' 是 var1 对应的列表里面的一个元素
七、判断语句
题目1
请大家实现一个程序, 对人的健康状况进行评估。
该程序运行起来先询问用户
请输入你的身高(单位米):
用户输入身高(比如1.8)后,再询问用户
请输入你的体重(单位公斤):
用户输入体重(比如70)后,再询问用户
请输入你的年龄:
用户输入年龄(比如30)后,进行如下判断:
-
如果用户 年龄 < 10 岁, 显示:10岁以下儿童不参与健康评估
-
如果用户 年龄 >=10 岁 并且 < 60 岁:
如果 体重 除以 身高的2次方 > 24 就提示用户体重超重
如果 体重 除以 身高的2次方 < 18 就提示用户体重超轻
否则,就提示用户 体重正常
-
如果用户 年龄 >= 60 岁, 显示:60岁以上老人不参与健康评估
题目2
运行下面的代码,会打印出 'f2' 吗? 为什么?
def f1():print('f1')return Truedef f2():print('f2')return Trueif f1():print("a")
elif f2():print("b")
else:print("c")
题目3
下面的表达式,运行结果分别是什么
6 > 7 or (8 > 9 and 10 > 9)(6 > 7 or 8 > 4) and 10 > 9(7 > 6 or 8 > 4) and 10 > 9 7 > 6 or (8 > 4 and 10 > 9)
八、对象的方法
题目1
有如下的代码,定义了一个Python列表 变量
var1 = [ 33, ['我的名字', '黑羽白月'], 'hello world!']
请接下来写一行代码,在列表的结尾处添加一个元素 字符串 '你好'
题目2
有如下的代码,定义了一个Python列表 变量
var1 = [ 33, ['我的名字', '黑羽白月'], 'hello world!']
请接下来写一行代码,在列表的开头处添加一个元素: 字符串 '你好'
题目3
有如下的代码,定义了一个Python列表 变量
var1 = [ 33, ['我的名字', '黑羽白月'], 'hello world!']
请接下来写一行代码,在列表33这个元素的后面 添加一个元素 字符串 '你好'
题目4
有如下的代码,定义了一个Python字符串
str1 = '大家好,我的名字叫:黑羽白月'
请接下来写一行代码,不要数人名字的下标位置,而是使用字符串find方法 找到人名字的下标位置,打印出 str1里面的人名字。
题目5
有如下的代码,定义了一个Python字符串
str1 = '大家好,我的名字叫:黑羽白月'
请接下来写一行代码,不要数人名字的下标位置,而是使用字符串split方法,打印出 str1里面的人名字。
题目6
首先提示用户输入年龄、身高、体重信息,格式如下如下
请输入您的性别:男
请输入您的身高(厘米):175厘米
请输入您的体重(公斤):80公斤
注意:
用户输入的内容,前后、中间都可能有空格,比如 175 厘米
然后根据如下的计算公式,计算出身高对应的标准体重。
标准体重(男)=(身高cm-100)x0.9(kg)
标准体重(女)=(身高cm-100)x0.9(kg)-2.5(kg)
如果体重在标准体重上下5公斤,都属于标准体重,提示用户体重标准。
否则提示用户高于标准还是低于标准
九、字符串格式化输出
题目1
有如下的代码,
str1 = '大家好,我的名字叫:'
str2 = '黑羽白月'
请接下来写一行代码,用字符串格式化的方式 将 str1 和 str2 拼接成一个字符串。
题目2
请写一段代码,运行的时候,提示用户 输入你的名字
在用户输入名字后,再提示用户 输入你的年龄
在用户输入后,显示
你的名字是:xxxx, 你的年龄是yy
其中xxxx是刚才用户输入的名字 yy是刚才用户输入的年龄
题目3
下面的 列表中保存了 游戏系统里面的 用户信息
info = [['user1', 345.6, 12, '黄金'],['user2', 2345.6, 8, '白银'],['user3555', 55345.6, 22, '钻石'],
]
每个元素也是一个列表, 对应一个用户的信息。
其中, 元素1 是用户的姓名, 元素2 是用户的积分,元素3是用户的等级,元素4是用户的头衔。
请写代码 根据上面的列表,以下面的格式打印用户的信息到屏幕上。
用户: user1, 积分: 345.6, 等级:12, 头衔:黄金
用户: user2, 积分: 2345.6, 等级: 8, 头衔:白银
用户:user3555, 积分:55345.6, 等级:12, 头衔:钻石
注意,使用适当的格式化方式, 使输出像上面那样对齐
十、循环
题目1
有如下的2个字符串
str1 = '''
熊宁
杰益王伟伟青芳玉琴
焦候涛
莫福
杨高旺
唐欢欢
韩旭
'''str2 = '''
焦候涛
熊宁
玉琴 骆龙 韩旭
杨高旺杰益 莫福 伟伟李福
'''
请写一个程序
找出 str1 中所有 str2 中不存在的人名,并且
找出 str2 中所有 str1 中不存在的人名
题目2
有如下的字符串,记录了三国人物的名字和年龄
ageTable = '''诸葛亮, 28刘备, 48刘琦, 25赵云, 32张飞, 43关羽, 45
'''
请写一个程序将其中 30岁以上和以下的人分别打印出来,类似这样
大于等于30岁的人有:
刘备
赵云
张飞
关羽小于30岁的人有:
诸葛亮
刘琦
题目3
关羽 和张飞 正在玩 剪刀石头布 的游戏。
写一个函数calculate_score, 参数是列表, 里面包含了n个元素也是列表。
比如 像这样 [["剪刀", "石头"], ["布", "剪刀"], ["剪刀", "剪刀"]]
n 个元素代表 n局 比赛,用列表表示,比如 ["剪刀", "石头"]
其中第1个元素表示关羽打出的手势,第2个元素是张飞打出的手势。
函数要计算出谁赢得次数多,输出比赛结果。
如果他们打成平手,输出“平局”。
比如:
calculate_score([["剪刀", "石头"], ["布", "剪刀"], ["剪刀", "剪刀"]])
输出应该是: 张飞 3局赢了2局,平手一局,张飞胜出calculate_score([["布", "石头"], ["石头", "剪刀"], ["石头", "剪刀"]])
输出应该是: 关羽 3局赢了3局,关羽胜出
十一、文件读写
题目1
熊宁 : 33
杰益 : 22
王伟伟: 54
青芳 : 45
玉琴 : 64
焦候涛: 42莫福 : 44
杨高旺: 44
唐欢欢: 36
韩旭 : 55
高法: 54李伟: 25
将上面的内容保存在文本文件
0013_a1.txt中
该文件的内容编码方式是utf-8。
该文件中记录了小区中人的姓名和年龄
请编写一个程序,将其中年龄大于50岁的找出来, 并且以这样的格式追加到该文件末尾中。
大于50岁的人有:xxx,xxx,xxx
十二、模块与库
题目1
请大家使用 pip install requests 命令安装好 requests 库。
该库可以用来构建http请求发送给服务器,并获取响应消息。 经常用于测试服务端和一些自动化工作。
新浪提供了股票数据 web API服务, 可以 得到指定股票的最新行情
url为 http://hq.sinajs.cn/list=<股票代码>
以大秦铁路(股票代码:sh601006)为例,如果要获取它的最新行情,只需访问新浪的接口:
ret = requests.get('http://hq.sinajs.cn/list=sh601006', # 现在一定要加上下面这个消息头headers ={'Referer':'http://finace.sina.com.cn'} )print(ret.text)
这个url会返回一串文本,例如:
var hq_str_sh601006="大秦铁路, 27.55, 27.25, 26.91, 27.55, 26.20, 26.91, 26.92,22114263, 589824680, 4695, 26.91, 57590, 26.90, 14700, 26.89, 14300,26.88, 15100, 26.87, 3100, 26.92, 8900, 26.93, 14230, 26.94, 25150, 26.95, 15220, 26.96, 2008-01-11, 15:05:32";
这个字符串由许多数据拼接在一起,不同含义的数据用逗号隔开了,按照程序员的思路,顺序号从0开始。
0:”大秦铁路”,股票名字;
1:”27.55″,今日开盘价;
2:”27.25″,昨日收盘价;
后面的字段我们就不需要了
请大家写一个程序,该程序实现一个函数 getStockPrice
,利用 requests库, 获取 指定某只股票的今日开盘价格。该函数的参数为指定股票的代码。
题目2
点击这里下载压缩包,解压后得到Python模块文件 getissue.py
。
#getissue.py import requests,pprintdef getIssueBody(issueID):url = f'https://api.github.com/repos/baiyueheiyu/python3vip-forum/issues/{issueID}'# 构造 API 请求response = requests.get(url)# 将 json格式的字符串转换 为Python中的对象,这里是一个字典对象info = response.json()# pprint.pprint(info)return info['body']
这个文件里面有一个函数 getIssueBody。 可以将我们论坛上指定某个帖子的主体内容返回回来。
其参数是帖子的ID。
请大家编写一个程序使用该函数,分别返回ID 为 1 和 2 的两个帖子的内容。
要求大家编写程序的代码文件 (比如main.py)和 getissue.py 分别放在不同的目录下面。
大家可以通过 设置环境变量 PYTHONPATH, 或者直接修改 sys.path 的方式, 让解释器可以寻找到 getissue.py 这个模块文件。
十三、字典
题目1
点击这里下载文件 解压后得到文件 0016_1.txt
这个是一个数据文件,格式如下
薛蟠 4560 42
薛蝌 4460 25
薛宝钗 5776 43
薛宝琴 4346 42
王夫人 3360 25
王熙凤 4460 35
王子腾 5660 45
王仁 5034 65
尤二姐 5324 25
贾芹 5663 25
贾蓉 3446 15
贾兰 3443 35
贾芸 4522 25
尤三姐 5905 45
贾珍 4603 25
这里面有3列数据,分别 保存了 游戏系统的用户名, 用户积分 , 年龄
现在要求大家写一个程序,计算出同一姓氏的人的积分总和。
输出结果格式如下:
薛 : 19142
王 : 18514
尤 : 11229
贾 : 21677
题目2
下面的字典里面记录了一个游戏系统中用户的信息。 其中key 是用户的ID, value 是另外一个字典,记录了用户名,用户等级和金币数量。
members = {1 :{'name':'白月黑羽', 'level':3, 'coins':300},2 :{'name':'短笛魔王', 'level':5, 'coins':330},3 :{'name':'紫气一元', 'level':6, 'coins':340},4 :{'name':'拜月主', 'level':3, 'coins':32200},5 :{'name':'诸法空', 'level':4, 'coins':330},6 :{'name':'暗光城主', 'level':3, 'coins':320},7 :{'name':'心魔尊', 'level':3, 'coins':2300},8 :{'name':'日月童子', 'level':8, 'coins':3450},9 :{'name':'不死尸王', 'level':3, 'coins':324},10:{'name':'天池剑尊', 'level':9, 'coins':13100},
}
要求大家写一个程序,运行的时候先显示如下主菜单
请选择操作选项:1 查看用户账号信息2 添加用户3 删除用户4 列出所有用户信息0 退出
如果用户选择 1 选项, 再次提示用户输入账号名, 用户输入账号后,显示该用户的 ID, 等级和 金币数量。
如果用户选择 2 选项, 提示用户输入账号名、等级、金币数量。 用户输入后,要检查该账号名是否已经存在,如果已经存在,则提示用户重新输入。如果用户输入的账号不存在,则添加该信息到字典中。
如果用户选择 3 选项, 提示用户输入账号名。 用户输入后,要检查该账号名是否已经存在,如果不存在,则提示用户重新输入。如果用户输入的账号存在,在用户字典中删除该账号。
如果用户选择 4 选项,则打印出当前用户表里所有用户的信息
如果用户选择 0 选项, 则退出程序。
只要不是选择退出,用户操作完后,再次进入主菜单,让用户再次选择。如此循环,直到用户选择0 退出。
十四、自定义类
题目1
题目1
请编写一个文字游戏程序
玩家扮演 一位领主,要去 都城 参选 国王。 但是路途上有7座森林,每座森林里面可能会碰到一个妖怪: 鹰妖 和 狼妖。
所以你需要雇佣战士对付它们,可以雇佣 弓箭兵 或者 斧头兵
弓箭兵、 斧头兵、 狼妖、鹰妖 具有如下特征
弓箭兵:雇佣价: 100 灵石最大生命值: 100杀伤力 杀死鹰妖 : 损耗生命值 20杀死狼妖 : 损耗生命值 80
斧头兵:雇佣价: 120 灵石最大生命值: 120杀伤力 杀死鹰妖 : 损耗生命值 80杀死狼妖 : 损耗生命值 20
游戏运行流程如下:
- 产生森林和妖怪
程序随机为7座森林分别产生 鹰妖或者狼妖。
然后在屏幕上打印出7座森林里面的妖怪 分别是什么。
注意,只显示10秒钟就会消失(这就是游戏考验玩家的记忆力,暂时可以用 打印20个换行 翻屏实现)。
- 雇佣战士
玩家有 1000
灵石,让玩家根据自己记忆的 妖怪种类和数量,选择 雇佣 多少个 弓箭兵 和 斧头兵。
每雇佣一个士兵,给他起一个名字。
- 然后开始征途,要通过7座森林,系统不会提示你森林里面是什么妖怪(玩家凭记忆回想),每座森林只能派出一个战士 去 消灭里面的 妖怪, 让玩家选择派出哪个战士。
如果 战士 生命值 损耗完,这个战士就死亡了,如果战士死亡,就得派出另外一名战士杀死妖怪。
每次通过森林后,玩家可以选择是否用灵石给 战士补养;
如果选择补养,消耗1个灵石可以为生命值加1,但是不可能超过最大生命值
这个游戏最后,一定要通过7座森林,才算通关,并且系统显示玩家剩余灵石。
最后 剩余灵石 越多越好,越有机会当选国王。
十五、异常
题目1
{点击这里下载文件 ,解压后得到文件 0019.txt
这个是一个数据文件,格式如下
薛蟠 4560 42
薛蝌 4460 25
薛宝钗 5776 43
请大家写一个程序,依次打印出里面的每一行内容的字符串长度。
注意: 这个文件应该是UTF8编码的格式,但是,由于历史原因,可能里面有些字符不是UTF8编码。
要求大家再解码每行内容的时候,如果UTF8解码错误,捕获该类型的错误,打印出 错误编码在文件中的行数,并且能够继续进行后续行的处理。
最后输出结果格式如下
第0001行,有14个字符
第0002行,有14个字符
第0003行,有13个字符
第0004行,有非utf8编码字符!!!!!!!!!!!
第0005行,有13个字符
第0006行,有14个字符
十六、函数(2)
题目1
请写一个函数 equals ,该函数参数为任意数量的数字,请在函数中统计出这些参数数字中重复的数字有多少个
比如 :
equals(3, 4, 3, 4, 1, 6, 2)
输出为:
数字 3 出现了 2 次
数字 4 出现了 2 次
数字 1 出现了 1 次
数字 6 出现了 1 次
数字 2 出现了 1 次
参考答案
通过百度网盘分享的文件:Python基础…
链接:https://pan.baidu.com/s/1ZzGFp53PJsxeLe9z_z63uA?pwd=sjjg
提取码:sjjg
复制这段内容打开「百度网盘APP 即可获取」