Python基础练习题,含答案解析

定义一个水果类,然后通过水果类,创建苹果对象、橘子对象、西瓜对象并分别添加属性:颜色和价格

23.代码题

定义一个电脑类,电脑有品牌,有价格,能放电影。分别创建2个对象"联想电脑" 和 “苹果电脑”。调用放电影的动作,联想电脑播放 电影"葫芦娃",苹果电脑播放"黑猫警长"。

24.代码题

编写一段代码以完成下面的要求:

  1. 定义一个Person类,类中要有初始化方法,方法中要有人的姓名和年龄属性
  1. 将类中的姓名是公有属性,年龄是私有属性.
  1. 提供获取私有属性的公有方法 get_age方法.
  1. 提供可以设置私有属性的方法 set_age方法,要求如果输入的年龄在 0 – 100 之间,设置年龄,否则,提示输入不正确,.
  1. 重写 str 要求打印对象时,把 姓名和年龄都打印出来。

25.代码题

【代码题】

按照如下的要求编写代码:

- 定义 input_password 函数,提示用户输入密码

- 如果用户输入长度 < 8,抛出异常

- 如果用户输入长度 >=8,返回输入的密码

答案解析


1.答案解析:

刚开始会基本使用print即可

print(“我的名片”)

print(“姓名: itheima”)

print(“QQ:xxxxxxx”)

print(“手机号:185xxxxxx”)

print(“公司地址:北京市xxxx”)

print(“===========================”)

2.答案解析:

现在学习了格式化,我们做练习主要是练习格式化

我们要格式的有4个一个是姓名 一个是QQ 一个是手机号 一个是地址 上下2个边缘是固定格式

#1. 定义4个变量分别存储4个要格式化的数据

name = “itheima”

QQ = “12345678”

phone = “1388888888”

address = “北京市xxxx”

2. 进行格式化输出

打印上边框

print(“我的名片”)

格式化4个变量,这里面使用了f-string方式进行的格式化,同学们也可以使用其他的格式化方式

print(f"姓名: {name}")

print(f"QQ: {QQ}")

print(f"手机号: {phone}")

print(f"地址: {address}")

#打印下边框

print(“===========================”)

3.答案解析:

这里让我们练习input方法 所以使用input接收用户输入即可

接收输入的名字

name = input(“请输入自己的姓名:”)

打印名字

print(name)

4.答案解析:

这里考察的是我们对变量的认知

python中的内置方法是一个变量你可以对其赋值,但是赋值后就不能再次当方法使用了

修改只需要把第一行代码去掉即可

#int = 100 #错误 对内置方法进行了赋值,导致后面int方法不能使用

a = “200”

b = int(a)

print(b)

5.答案解析:

这里面考察2个知识点 一个是input 一个是if判断

从键盘获取用户名和密码

name = input(“请输入用户名:”)

password = input(“请输入密码:”)

and 连接2个判断语句 表示2个都要相等

if name==“MrSun” and password==“123456”:

print(“欢迎来到博学谷”)

6.答案解析:

这里考察的就是我们条件判断

我们现实中±*/是让用户来选择的,那么我们根据用户的选择的操作 执行对应的行为

注意input 返回的都是字符串记得把数字转int类型

num1 = int(input("请输入第一个数字: "))

opt = input("请输入你要执行的操作(+ - * /): ")

num2 = int(input("请输入第二个个数字: "))

注意判断的时候是双等号

if opt==“+”:

使用f-string格式化,效果: 1 + 2 = 3

print(f"{num1} {opt} {num2} = {num1+num2}")

elif opt==“-”:

print(f"{num1} {opt} {num2} = {num1-num2}")

elif opt==“*”:

print(f"{num1} {opt} {num2} = {num1*num2}")

elif opt==“/”:

print(f"{num1} {opt} {num2} = {num1/num2}")

else:

print(“你要执行的操作无效!”)

7.答案解析:

与上面的计算器类似 主要考察input 以及 多分支判断

从键盘获取分数,input 返回的是字符串记得转化成int

score = int(input("请输入你的成绩: "))

多分支判断成绩属于哪个档次

if score<60:

print(“不及格”)

elif 60<=score<70:

print(“及格”)

elif 70<=score<80:

print(“合格”)

elif 80<=score<90:

print(“良好”)

else:

print(“优秀”)

8.答案解析:

星号先递增值5个,然后再递减至5个

可以考虑使用一个标志来控制星号的增加加和减少

字符串可以使用乘法 ‘*’*5 表示 星号重复5次

#初始要打印的星号个数

num = 1

设置一个标志,如果true 表示要星号增加

flag = True

星号小于0的时候退出循环

while num>0:

打印星星

print(“*”*num)

如果星号已经到5,更改flag,下次循环要开始减少星星

if num==5:

flag = False

如果flag 为true 说明星号是递增,

if flag:

num+=1

flag为false 说明星号开始递减

else:

num-=1

9.答案解析:

考察for range的用法

pstr = “abcdef”

for s in pstr:

print(s)

10.答案解析:

a = “abcd”

方法一 使用while逆向遍历

获取字符串最大的下标

index = len(a)-1

while lg>0:

print(a[index])

下标递减

index-=1

方法二使用切片

a = [::-1]

print(a)

11.答案解析:

考察列表遍历,考察整数转字符串,考虑字符串拼接

l = [1,2,3,4]

定义空字符串用于拼接字符串

result = “”

遍历列表元素

for num in l:

把整数转成字符串然后拼接到result

result+=str(num)

打印结果

print(result)

12.答案解析:

考察列表遍历,以及列表元组值修改

遍历可以使用for range 或者while,但是涉及到修改需要使用下标,所以采用while 加下标的方式

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

定义下标, 初始为0

index = 0

循环遍历列表元素,直至到最后一个值

while index<len(l):

判断如果是偶数,对这个元素加1

if l[index]%2==0:

l[index]+=1

下标向后移动

index+=1

13.答案解析:

考察元组遍历,列表元素添加,列表元素判断,元组元素统计

test = (“a”,“b”,“c”,“a”,“c”)

定义列表用于存储统计结果

result = []

for s in test:

统计元素个数

cnt = test.count(s)

把统计结果拼接成(‘a’,1)这样的格式

tmp = (s,cnt)

判断这个元素是否已统计过,如果已经在结果中说明这个元素就统计过了 继续下一个元素

if tmp in result:

continue

else:

result.append(tmp)

打印统计结果

print(result)

14.答案解析:

考察input方法,考察enumerate方法,以及字符串格式化, 考察while循环

定义一个列表用于存储所有的用户信息

users = []

定义循环因子

i = 0

while i<3:

name = input("请输入姓名: ")

age 整数记得要转化

age = int(input(“请输入年龄”))

把用户信息构造成字典,添加到列表中

users.append({“name”:name,‘age’:age})

遍历打印用户信息,因为要打印编号,可以考虑使用enumerate

注意: enumerate 方法返回的是元素,我们需要用2个变量接收,一个是编号,一个是元素

for thnum,user in enumerate(users,start=1):

使用f-string快速格式化

print(f"{thnum} {user[‘name’]} {user[‘age’]}")

如果还没学习enumerate,可以使用一个变量来表示序号

定义序号起始为1

thnum = 1

for user in users:

print(f"{thnum} {user[‘name’]} {user[‘age’]}")

记得把序号加1

thnum+=1

15.答案解析:

1. 要想提取数字字符,我们需要遍历字符串

2. 需要知道如何判断一个字符是否是数字,数字是有0123456789 中的字符构成,如果字符在这里面是不是就表示这个是数字呢

3. 把是数字的字符拼接到一起

test = “aAsmr3idd4bgs7Dlsf9eAF”

定义一个变量接收数字字符

result = “”

for s in test:

如果s在后面的字符串中说明这个字符是数字字符

if s in “0123456789”:

把数字字符添拼接到结果中

result+=s

打印结果

print(result)

16.答案解析:

1. 因为要处理每个字符,所以需要遍历字符

2. 如果判断一个字符是不是英文字母,我们字符串本身就有方法可以判断 isalpha 方法

3. 把英文单词拼接到一起就是我们要的

msg = “hel@#KaTeX parse error: Undefined control sequence: \nhon at position 8: lo pyt \̲n̲h̲o̲n̲ ̲ni\t hao%

保存结果

result = “”

循环遍历字符

for s in msg:

判断当前字符是否是字母

if s.isalpha():

把字符添加到结果中

result+=s

打印最后的结果

print(result)

17.答案解析:

#1. 因为要查找位置,所以要遍历字符串

#2. 因为要查找多个字符,所以需要使用切边提取固定的字符

#3. 把查找到的位置保存到结果列表中

#4. 题目要求是个元组所以再转化成元组

src: 原始字符串,dst: 要查找的字符串

def findall(src,dst):

获取字符长度,用去截取字符

lg = len(dst)

保存查找的下标

res = []

#遍历字符通过下标

for index in range(lg):

截取与dst相同的字符如果相等说明 位置ok

if src[index:index+lg]==dst:

把当前位置添加到结果集中

res.append(index)

把结果转化成元组返回

return tuple(res)

s = “helloworldhellopythonhelloc++hellojava”

print(findall(s))

18.答案解析:

def sum_test(n):

保存结果

sum = 0

循环因子

i = 1

#循环累加

while i<=n:

累加结果

sum+=i

增加循环因子

i+=1

print(sum)

num = 10

sun_test(num)

19.答案解析:

考察不定长参数定义,与传递,以及遍历求大小值

def max_min(*args):

定义最大、最小值,把元素的第一个值作为最大值与最小值,然后与后面的其他值比较

max = args[0]

min = args[0]

for num in args:

如果max 小于num 那么max更新为num

if max<num:

max = num

如果min 大于num说明num小,则更新min

if min>num:

min = num

return max,min

max,min = max_min(5,2,7,1,7,8,9,10)

print(f’max = {max},min = {min}')

20.答案解析:

src 源文件路径,dst目标文件路

def copy(src,dst):

打开src文件

读的方式打开src

fr = open(src,‘r’)

写的方式打开dst

fw = open(dst,‘w’)

把src的内容写入到dst中

fw.write(fr.read())

关闭文件

fr.close()

fw.close()

print(‘文件拷贝完成’)

copy(“1.txt”,‘2.txt’)

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Python工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Python开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

img

img

img

img

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以扫码获取!!!(备注:Python)

fr.close()

fw.close()

print(‘文件拷贝完成’)

copy(“1.txt”,‘2.txt’)

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Python工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Python开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

[外链图片转存中…(img-uQEObgFg-1713638673053)]

[外链图片转存中…(img-8toBK5G0-1713638673053)]

[外链图片转存中…(img-kma9xS27-1713638673054)]

[外链图片转存中…(img-CWkZ2fal-1713638673054)]

img

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以扫码获取!!!(备注:Python)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值