IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> 【干货大放送!】小白必备Python100道练习题,赶紧收藏 -> 正文阅读

[Python知识库]【干货大放送!】小白必备Python100道练习题,赶紧收藏

嗨~我是小鱼

爆肝给大家整理了这份今天给大家分享100道Python练习题。大家一定要给我三连啊~

在此之前,先给大家推荐一个工具,是一个对 Python 运行原理进行可视化分析的工具,Python Tutor,点击 Next 按钮就会根据执行步骤显示原理,对新手理解代码运行原理有很大帮助。举一个简单的例子,sort() 方式和 sorted()的区别。

可以明显看到 sort() 会就地在原序列上排序,sorted() 新建了一个新的序列。

Python基础习题

1、怎么计算2的3次方

解法1:直接用运算符 **

>>>?2**3
8

解法2:用函数 pow

>>>?pow(2,3)
8

2、怎么找出序列中的最大值和最小值?

用内置函数 max 和 min

>>>?l?=?(123,?888,?666)
>>>?max(l)
888
>>>?min(l)
123

3、怎么将字符列表转为字符串

用 join 方法,合并序列的元素

>>>?l?=?['Python',?'Circle',?'is',?'ok']
>>>?j?=?'?'.join(l)
>>>?j
'Python?Circle?is?ok'

4、怎么快速打印出包含所有 ASCII 字母(大写和小写)的字符串

用 string 模块的方法

>>>?import?string
>>>?string.ascii_letters
'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'

5、怎么让字符串居中

用字符串中的 center 方法,他会在两边自动填充字符(默认为空格),让字符串居中

>>>?k?=?小鱼Python

>>>?k.center(50)
'??????????????更多精彩,请关注「小鱼Python」??????????????'
>>>?k.center(50,?'*')

6、怎么在字符串中找到子串

用 find 方法,如果找到,就返回子串的第一个字符的索引,否则返回 -1

>>>?ss?=?'I?Love?Python'
>>>?ss.find('I')
0
>>>?ss.find('Python')
7

7、怎么让字符的首字母大写,其他字母小写

解法1:用 title 方法。

>>>?ss?=?'i?love?python'
>>>?ss.title()
'I?Love?Python'

解法2:用 string 模块里的 capwords 方法。

>>>?import?string
>>>?ss?=?'i?love?python'
>>>?string.capwords(ss)
'I?Love?Python'

9、怎么清空列表内容

解法1:用 clear 方法

>>>?l?=?[1,?2,?3]
>>>?l.clear()
>>>?l
[]

解法2:用切片赋值的方法

>>>?k?=?[1,?2,?3]
>>>?k[:]?=?[]
>>>?k
[]

10、怎么计算指定的元素在列表中出现了多少次?

用 count 方法

>>>?l?=?['i',?'am',?'ok',?'ok']
>>>?l.count('ok')
2

11、怎么在列表末尾加入其它元素

用 extend 方法

>>>?l?=?[1,?2,?3]
>>>?j?=?[4,?5,?6]
>>>?l.extend(j)
>>>?l
[1,?2,?3,?4,?5,?6]

12、extend 和列表相加的区别?

两者看起来效果一致

>>>?l?=?[1,?2,?3]
>>>?j?=?[4,?5,?6]
>>>?l?+?j
[1,?2,?3,?4,?5,?6]

extend 是直接在 l 列表里加入元素,相加会生成一个新元素,并不会对 l 做修改。

13、怎么查找列表中某个元素第一次出现的索引,从 0 开始

用 index 方法

>>>?l?=?['are',?'you',?'ok']
>>>?l.index('you')
1

14、怎么将一个对象插入到列表中

解法1:用 insert 方法

>>>?num?=?[1,?2,?4,?5]
>>>?num.insert(2,?'three')
>>>?num
[1,?2,?'three',?4,?5]

解法2:用切片的方式插入

>>>?num?=?[1,?2,?4,?5]
>>>?num[2:2]?=?['three']
>>>?num
[1,?2,?'three',?4,?5]

15、怎么删除列表中元素

pop 方法可以删除指定元素,不指定位置的话默认删除最后一个元素

>>>?num?=?[1,?2,?4,?5]
>>>?num.pop()
5
>>>?num
[1,?2,?4]
>>>?num.pop(1)
2
>>>?num
[1,?4]

16、怎么删除列表中指定元素

用 remove 方法

>>>?num
[1,?4]
>>>?num?=?[1,?2,?4,?5,?4]
>>>?num.remove(4)
>>>?num
[1,?2,?5,?4]

remove 方法只会删除第一次出现的元素/

17、怎么让列表按相反顺序排列?

解法1:用 reverse 方法

>>>?num?=?[1,?22,?45,?99,?49]
>>>?num.reverse()
>>>?num
[49,?99,?45,?22,?1]

解法2:用切片的方式

>>>?num?=?[1,?22,?45,?99,?49]
>>>?num[::-1]
[49,?99,?45,?22,?1]

18、怎么表示只包含一个元素的元组

1个元素的元组,必须在唯一的元素后加上逗号,否则不是元组

>>>?t=?(1)
>>>?type(t)
<class?'int'>
>>>?t=?(1,)
>>>?type(t)
<class?'tuple'>

19、怎么批量替换字符串中的元素

用 replace 方法

>>>?'i?love?Python'.replace('o',?'ee')
'i?leeve?Pytheen'

20、怎么把字符串按照空格进行拆分

用 split 方法,括号为空的情况下默认以空格拆分

>>>?'i?love?Python'.split()
['i',?'love',?'Python']

Python进阶习题

1、怎么用for循环实现把字符串变成Unicode码位的列表

>>>?st?=?'!@#$%^&*'
>>>?codes?=?[]
>>>?for?s?in?st:
?codes.append(ord(s))

>>>?codes
[33,?64,?35,?36,?37,?94,?38,?42]

2、怎么用列表推导式实现把字符串变成Unicode码位的列表

>>>?st?=?'!@#$%^&*'
>>>?codes?=?[ord(s)?for?s?in?st]
>>>?codes
[33,?64,?35,?36,?37,?94,?38,?42]

很明显,用列表推导式实现比 for 循环加 append 更高效简洁,可读性更好。

3、打印出两个列表的笛卡尔积

解法1:使用生成器表达式产生笛卡尔积,可以帮忙省掉运行 for 循环的开销。

>>>?colors?=?['blacks',?'white']
>>>?sizes?=?['S',?'M',?'L']
>>>?for?tshirt?in?('%s?%s'%(c,?s)?for?c?in?colors?for?s?in?sizes):
????print(tshirt)

blacks?S
blacks?M
blacks?L
white?S
white?M
white?L

解法2:使用 itertools 里的 product 生成器函数。

>>>?import?itertools
>>>?list(itertools.product(['blacks',?'white'],?['S',?'M',?'L']))
[('blacks',?'S'),?('blacks',?'M'),?('blacks',?'L'),?('white',?'S'),?('white',?'M'),?('white',?'L')]

4、可迭代对象拆包时,怎么赋值给占位符

我们经常用 for 循环提取元组里的元素,对于我们不想接收的元素,我们可以用占位符 _ 接收。

>>>?player_infos?=?[('Kobe',?'24'),?('James',?'23'),?('Iverson',?'3')]
>>>?for?player_names,?_?in?player_infos:
????print(player_names)

Kobe
James
Iverson

5、Python3 中,用什么方式接收不确定值或参数

用 *args 的方式,*args 位置可以在任意位置。

>>>?a,?b,?*c?=?range(8)
>>>?a,?b,?c
(0,?1,?[2,?3,?4,?5,?6,?7])

>>>?a,?*b,?c,?d?=?range(5)
>>>?a,b,c,d
(0,?[1,?2],?3,?4)

>>>?*a,?b,?c,?d?=?range(5)
>>>?a,b,c,d
([0,?1],?2,?3,?4)

6、用切片将对象倒序

>>>?s?=?'basketball'
>>>?s[::-1]
'llabteksab'

7、怎么查看列表的 ID

>>>?l?=?[1,?2,?3]
>>>?id(l)
4507638664

8、可变序列用*=(就地乘法)后,会创建新的序列吗?

不会,可变序列用*=(就地乘法)后,不会创建新的序列,新元素追加到老元素上,以列表为例,我们看下新老列表的id,相等的。

>>>?l?=?[1,?2,?3]
>>>?id(l)
4507939272
>>>?l?*=?2
>>>?l
[1,?2,?3,?1,?2,?3]
>>>?id(l)
4507939272

9、不可变序列用*=(就地乘法)后,会创建新的序列吗?

会,不可变序列用*=(就地乘法)后,会创建新的序列,以元组为例,我们看下新老元组的id,是不同的。

>>>?t?=?(1,?2,?3)
>>>?id(t)
4507902240
>>>?t?*=?2
>>>?t
(1,?2,?3,?1,?2,?3)
>>>?id(t)
4507632648

所以,对不可变序列进行重复拼接操作的话,效率会很低,因为每次都有一个新对象,而解释器需要把原来对象中的元素先复制到新的对象里,然后再追加新的元素。

10、关于+=的一道谜题

t?=?(1,?2,?[30,?40])
t[2]?+=?[50,?60]

到底会发生下面4种情况中的哪一种?a. t变成(1, 2, [30, 40, 50, 60])。b.因为tuple不支持对它的元素赋值,所以会抛出TypeError异常。c.以上两个都不是。d. a和b都是对的。答案是d,请看下运行结果。

>>>?t?=?(1,?2,?[30,?40])
>>>?t[2]?+=?[50,?60]
Traceback?(most?recent?call?last):
??File?"<pyshell#1>",?line?1,?in?<module>
????t[2]?+=?[50,?60]
TypeError:?'tuple'?object?does?not?support?item?assignment
>>>?t
(1,?2,?[30,?40,?50,?60])

由于文章篇幅限制,无法将100道题全部呈现在此。

评论或者私聊我 “100题” 即可获取高清Python100题PDF

我是小鱼,一个90后程序名媛~


在实操或者练习过程中有问题的可以进群咨询,里面有各个阶段的朋友,你会在这里找到你想要的答案哦~交流群:954526228(注意进群暗号是:小鱼

里面还有适合小白新手的全套资料给到大家~

快来和小鱼一起成长进步吧!

① 2000多本Python电子书(主流和经典的书籍应该都有了)

② Python标准库资料(最全中文版)

③ 项目源码(四五十个有趣且经典的练手项目及源码)

④ Python基础入门、爬虫、web开发、大数据分析方面的视频(适合小白学习)

⑤ Python学习路线图(告别不入流的学习)

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-07-04 19:27:40  更:2021-07-04 19:28:10 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/3 8:02:39-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码