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

大家好,我是辣条。

今天给大家整理一些Python练习题【含答案解析】,可以自己先尝试做一下,再和文末的答案解析核对,希望能帮助到你。

练习题

1.使用字符串的格式化输出完成以下名片的显示

==========我的名片==========
姓名: itheima  
QQ:xxxxxxx
手机号:185xxxxxx
公司地址:北京市xxxx
===========================

2.使用字符串的格式化输出完成以下名片的显示

==========我的名片==========
姓名: itheima  
QQ:xxxxxxx
手机号:185xxxxxx
公司地址:北京市xxxx
===========================

3.编程实现:用户在键盘中输入自己的名字,例如”张三”,终端打印”你好,张三”

4.判断下面的代码是否写的正确,如果不正确,请修改代码,然后执行代码。

int = 100
a = "200"
b = int(a)
print(b)

5.编写程序,从键盘获取用户名和密码,然后判断,如果正确就输出以下信息: “欢迎来到博学谷!”

6.编写代码设计简易计算器,可以进行基本的加减乘除运算。

7.考试成绩的问题:提示用户输入成绩,判断是属于哪个水平,将结果打印到控制台。60以下不及格,60分以上为及格,70分至80分为合格,80分至90分为良好,90分以上为优秀。

8. 使用while打印如下图形

9.使用for循环,依次打印字符串”abcdef”中的每个字符。

10.请将a字符串反转并输出。例如:’abc’的反转是’cba’

11.把[1,2,3,4]转换成”1234″

12.编程实现 把一个元素全为数字的列表中的所有偶数加1

13. test = (“a”,”b”,”c”,”a”,”c”) ,统计元祖中每个元素出现的次数把最终的结果保存到列表中,例如[(‘a’,1),(‘b’,3),(‘c’,5)]。

14.题目描述

在控制台输入 3 组个人信息,每个人有姓名和年龄,将信息存入字典中,将字典存入列表。
遍历列表,打印每个人的信息,打印格式如下:
1 张三 20
2 李四 22
3 王五 23

15.已知字符串 test = “aAsmr3idd4bgs7Dlsf9eAF”,将字符串中的数字取出,生成一个新的字符串

16.现有字符串 msg = “hel@#$lo pyt \nhon 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("===========================")
​

undefined

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

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

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

undefined

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)

    # 把结果转化成元组返回      
    return tuple(res)
​
s = "helloworldhellopythonhelloc++hellojava"
print(findall(s))

18.答案解析:

def sum_test(n):
    # 保存结果
    sum = 0
    # 循环因子
    i = 1
    #循环累加
    while i

19.答案解析:

考察不定长参数定义,与传递,以及遍历求大小值
def max_min(*args):
    # 定义最大、最小值,把元素的第一个值作为最大值与最小值,然后与后面的其他值比较
    max = args[0]
    min = args[0]
    for num in args:
        # 如果max 小于num 那么max更新为num
        if maxnum:
            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')

21.答案解析:

文件分为2类一个是文件一个是目录
处理的时候需要判断是文件还会目录
​
import os
#file_dir 要重命名那个文件夹下面的文件
def rename(file_dir):
    # 获取当前文件下面的所有文件【包含目录和文件】
    files = os.listdir(file_dir)

    # 遍历获取所有文件与目录
    for file in files:
        # 拼接获取完整的文件路径
        filename = os.path.join(file_dir,file)
        # 判断如果是文件则重命名
        if os.path.isfile(filename):
            # 获取完成的新的文件路径名字
            new_name = os.path.join(file_dir,"new_"+file)
            os.rename(filename,new_name)
        else: # 如果不是文件说明是个目录
           #如果是目录则递归调用继续 对子目录中的文件进行重命名
           rename(filename)
测试
rename('D:\test')

22.答案解析:

 1.我们要区分是水果,需要有一个水果类型
 2. 颜色和价格是对象属性
 3. 魔法方法__str__ 便于格式化打印对象
class Fruit():
    def __init__(self, fruit_type):
        # 创建的时候指定创建什么类型的水果
        self.type = fruit_type
        self.color = None
        self.price = None
    # 设置颜色  
    def Set_color(self,color):
        self.color = color
    # 设置价格
    def Set_price(self,price):
        self.price = price

    def __str__(self):
        if self.color is None or  self.price is None:
            return "水果价格和颜色没有设置!"
        else:
            return f'{self.type}: color--{self.color} price--{self.price}元 '
​
创建苹果
apple = Fruit("苹果")
apple.Set_color('red')
apple.Set_price(5)
print(apple)
​
.... 其他自己创建

23.答案解析:

1. 电脑类,为了区别种类我们需要有一个 电脑类型type
2. 电脑能播放电影,有play方法,电影因为不属于电脑的,所以我们可以把电影当成参数传递
​
class Computer():
    def __init__(self,ctype):
        # 初始化电脑的类型,例如联想
        self.type = ctype
    # 播放电影的行为  
    def play(self,film):
        print(f"{self.type} 播放了 {film}!")

levoe = Computer("联想")
levoe.play("猫和老鼠")
​
其他电脑自己创建

24.答案解析:

class Person():
    def __init__(self, name,age):
        # 创建的时候指定创建什么类型的水果
        self.name = name
        # 私有属性
        self.__age = age

    # 获取年龄,因为年龄是私有属性所以要提供对象的方法获取
    def Get_age(self):
        return self.__age
    # 设置年龄,因为年龄是私有属性所以要提供对象的方法进行修改
    def Set_age(self,age):
        self.__age = age

    # 重新__str__ 便于打印格式化
    def __str__(self):
        return f'name: {self.name}, age:{self.__age}'
​
测试代码
laowang = Person('laowang',50)
print(laowang)
laowang.Set_age(60)
print(laowang.Get_age())
print(laowang)

25.答案解析

无参数,返回用户校验后的面
def input_password():
    password = input("请输入密码: ")
    if len(password)

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

往期精彩推送

我用Python修改了班花的开机密码,重新登录后竟然发现了她的秘密!

我用Python采集了班花的空间数据集,除了美照竟然再一次发现了她另外的秘密!

室友单恋班花失败,我爬了一个网站发给他瞬间治愈,男人的快乐就这么简单【每天一遍,忘记初恋】

Original: https://blog.csdn.net/AI19970205/article/details/119278042
Author: 五包辣条!
Title: Python基础练习题,含答案解析

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/672381/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • Spring ,Spring MVC,Spring Boot

    Spring框架 Spring框架的作用 Spring 框架主要解决了创建对象,管理对象的问题 Spring 框架的依赖项 当项目中需要使用Spring框架时,需要添加依赖项是: …

    人工智能 2023年6月27日
    087
  • Unity Webgl内嵌网页页面

    Unity Webgl端有时候会有这样一个需求,在Unity界面上内嵌一个网页,并且可以在界面上把这个网页关掉(不是重新打开新的标签页) 效果如下:现在来实现这个功能:1.在Ass…

    人工智能 2023年7月31日
    049
  • YOLOv5Face YOLO5Face人脸检测论文及代码简析

    YOLO5face人脸检测模型论文和代码简析 YOLO5Face模型分析 * 论文及源码下载 论文创新点 实验结果 下载代码跑起来 调整数据集 训练完成之后检验结果 一点点代码简析…

    人工智能 2023年6月17日
    088
  • 驾照科目一知识点——1、准驾车型

    (1)、驾驶证A1: 大型载客汽车、车身超过6米的载客汽车,也可以驾驶A3、B1、B2的所有准驾车型; (2)、驾驶证A2: 牵引车、即重型、中型全挂、半挂汽车列车,也可以驾驶B1…

    人工智能 2023年6月2日
    084
  • 半监督学习算法的缺点是什么

    半监督学习算法的缺点 半监督学习是一种利用有标签和无标签数据进行训练的机器学习方法。相比于仅使用有标签数据进行训练的监督学习,半监督学习可以更好地利用未标签数据,从而提高模型的性能…

    人工智能 2024年1月1日
    057
  • 数字图像处理知识点总结

    一、图像的基本概念 数字图像的描述 如何用一个数值方式来表示一个图像 数字图像是图像的数字表示,像素是其最小单位 一般是用整数矩阵来描述一个数字图像 用矩阵坐标系来定义图像的坐标 …

    人工智能 2023年6月20日
    089
  • Pytorch构建卷积神经网络对MNIST数据集进行分类

    对于一张输入的图片,该图片是 栅格图像,也就是说图片分成一格一格,每一格代表一个 像素,对于 patch(图片块),我们按照块的大小,从上到下、从左到右对图片进行遍历,然后对每个图…

    人工智能 2023年7月13日
    080
  • 基于空间句法的城市道路可达性分析

    本篇推文将为大家介绍如何基于空间句法分析城市道路的可达性,相信大家已经看过小编之前的一篇推文《》,那一篇文章主要基于OD成本矩阵来分析道路可达性。而本文介绍的空间句法更强调空间关系…

    人工智能 2023年6月24日
    073
  • python基于情感词典的情感分析

    今天给大家分享的是通过情感词典来对文本进行情感分析最后计算出情感得分 通过情感得分来判断正负调性 主要步骤: 数据准备 本次情感词典采用的是BosonNLP的情感词典,来源于社交媒…

    人工智能 2023年5月28日
    0119
  • 【Swin Transformer】Win10使用Swin Transformer做目标检测 (使用自己的数据集 + 图解超详细)

    文章目录 Swin Transformer * 环境搭建 – VS2019配置 conda虚拟环境 Pytorch安装 mmcv安装 + 查看匹配版本 安装mmcv m…

    人工智能 2023年6月17日
    0141
  • yolov5优化器及超参数设置

    文章目录 前言 一 优化器 二 超参数 参考 前言 一 优化器 机器学习的五个步骤: 数据 -> 模型 -> 损失 -> 优化器 -> 迭代训练。 我们通过…

    人工智能 2023年6月23日
    096
  • C++基础——static成员

    面向对象编程的 基础 要了解面向对象编程(OOP)的基本概念,需要理解 OOP 的三个主要概念,它们撑起 了整个 OOP 的框架。这三个概念是:封装、继承性和多态性。除此以外,还需…

    人工智能 2023年6月28日
    0101
  • Origin 2019b 图文安装教程及下载(附安装包)

    软件介绍 Origin是由OriginLab公司开发的一个科学绘图、数据分析软件,支持在Microsoft Windows下运行。Origin支持各种各样的2D/3D图形。,拥有强…

    人工智能 2023年7月15日
    0109
  • WPF布局控件之StackPanel布局

    文章目录 前言 * 概述: 一、StackPanel * Orientation属性演示 – + * – 代码如下(水平排列): – 效果图如下…

    人工智能 2023年6月27日
    089
  • 聚类性能评价指标

    好的聚类算法一般要求类簇具有高的类内(intra-cluster)相似度和低的(inter-cluster)相似度。 聚类算法有外部(External)评价指标和内部(Intern…

    人工智能 2023年6月2日
    071
  • pandas的基础使用

    快速导入包: 对象创建 Series通过传递值列表来创建 ,让 pandas 创建一个默认整数索引: s = pd.Series([1, 3, 5, np.nan, 6, 8]) …

    人工智能 2023年7月6日
    079
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球