Python基础练习题,含答案解析_编程题 定义字符串的内容为“管理学院计算机系xx专业张三”,请利用字符串截取

15.已知字符串 test = “aAsmr3idd4bgs7Dlsf9eAF”,将字符串中的数字取出,生成一个新的字符串
16.现有字符串 msg = “hel@#KaTeX parse error: Undefined control sequence: \nhon at position 8: lo pyt \̲n̲h̲o̲n̲ ̲ni\t hao%” ,去掉所有不是英文字母的字符,打印结果:“请理以后的结果为:hellopythonnihao”
17.代码题目

定义函数findall,要求返回符合要求的所有位置的起始下标,如字符串"helloworldhellopythonhelloc++hellojava",

需要找出里面所有的"hello"的位置,返回的格式是一个元组,即:(0,10,21,29)

18.代码题

定义一个函数 sum_test 接收一个参数 n ,在函数中计算 1 + 2 + 3 + … + n 的值,并打印结果。

19.代码题目

使用不定长参数定义一个函数max_min,接受的参数类型是数值,最终返回这些数中的最大值和最小值

20.代码题

把一个文件中的内容,复制到另外一个文件中。

21.代码题

使用os模块,把文件夹中的所有文件重命名。例如,当前test目录下所有的文件名开头添加new_这个字符串。

22.代码题

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

23.代码题

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

24.代码题

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

  1. 定义一个Person类,类中要有初始化方法,方法中要有人的姓名和年龄属性
  2. 将类中的姓名是公有属性,年龄是私有属性.
  3. 提供获取私有属性的公有方法 get_age方法.
  4. 提供可以设置私有属性的方法 set_age方法,要求如果输入的年龄在 0 – 100 之间,设置年龄,否则,提示输入不正确,.
  5. 重写 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@#$lo pyt \nhon 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)
            
    # 把结果转化成元组返回       


### 最后

不知道你们用的什么环境,我一般都是用的Python3.6环境和pycharm解释器,没有软件,或者没有资料,没人解答问题,都可以免费领取(包括今天的代码),过几天我还会做个视频教程出来,有需要也可以领取~  

给大家准备的学习资料包括但不限于:  

Python 环境、pycharm编辑器/永久激活/翻译插件  

python 零基础视频教程  

Python 界面开发实战教程  

Python 爬虫实战教程  

Python 数据分析实战教程  

python 游戏开发实战教程  

Python 电子书100本  

Python 学习路线规划

![](https://img-blog.csdnimg.cn/d29631674929476f9c3b30f7ff58dff0.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2ZlaTM0Nzc5NTc5MA==,size_16,color_FFFFFF,t_70)




**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**

**[需要这份系统化学习资料的朋友,可以戳这里无偿获取](https://bbs.csdn.net/topics/618317507)**

**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**
  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值