【Python练习题】吃透这150道练习题,轻松搞定Python95%知识点 (含答案解析)
Python入门简单,当我们学完基础知识后,最好的巩固方法就是拿一些练习题练手,综合所学内容,达到输入输出 纠正的完美学习路径。
这里给大家分享一份大佬整理的150道Python练习题,涵盖Python基础内容的方方面面。非常经典。
内容包括:数据类型、基础语法、内置函数、字符串方法、排序算法、简单算法、中等难度算法、地狱级难度算法。每道题均有详细的题目要求;示例代码;难能可贵的是附有详细的解题思路分析,以及所涉及可能会让新手困惑的知识点详解。建议先不看答案,运用自己所学到的知识跑一遍代码,然后再来参照解析。达到最佳练习效果!
【数据类型】不运行程序,说出下方程序运行结果:
4.0 == 4
"4.0" == 4
bool("1")
bool("0")
str(32)
int(6.26)
float(32)
float("3.21")
int("434")
int("3.42")
bool(-1)
bool("")
bool(0)
"wrqq" > "acd"
"ttt" == "ttt "
"sd"*3
"wer" + "2322"
【字符串】不用代码,口述下方代码执行结果
string="Python is good"
string[1:20]
string[20]
string[3:-4]
string[-10:-3]
string.lower()
string.replace("o","0")
string.startswith("python")
string.split()
len(string)
string[30]
string.replace("",")
【简单算法】打印杨辉三角。给定一个正整数N,打印杨辉三角的前N行。杨辉三角形态如下:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
【简单算法】已知两个列表
lst_1 = [1, 2, 3, 4]
lst_2 = ['a', 'b', 'c', 'd']
['1a', '2a', '3a', '4a'],
['1b', '2b', '3b', '4b'],
['1c', '2c', '3c', '4c'],
['1d', '2d', '3d', '4d']
【简单算法】求三位数组合
lst = [3, 6, 2, 7]
【排序】选择排序
def select_sort(lst):
for i in range(len(lst)):
min = i
for j in range(min,len(lst)):
# 寻找min 到len(lst)-1 这个范围内的最⼩小值
if lst[min] > lst[j]:
min = j
lst[i], lst[min] = lst[min], lst[i]
lst = [2,6,1,8,2,4,9]
select_sort(lst)
print lst
【中等难度算法】将下方给定的字符串中的每个单词逐个翻转。翻转后,空格不能减少,单词之间的空格数量不能发生变化。
输入: " the sky is blue",
输出: "blue is sky the "
如果只是简单的翻转字符串,就过于简单了,因此要求翻转每一个单词,单词还是原来的样子,但是单词所在的位置却发生了翻转,第一个单词变成了倒数第一个单词。字符串是不可变对象,不能直接在字符串上进行翻转,要借助列表(list)进行翻转
【中等难度算法】给定一个整数,请计算二进制中为1的位数
13
如果一个数是奇数,那么它的二级制的最后一位一定是1,道理很简单,其他的位都表示2n 只有最后一位表示20。我们可以利用最后一位是否为1来统计为1的位数,这就需要最后一位是变化的,还好,我们可以利用用位运算符>>(右移位运算符)
13的二进制表示是1101,13>>1就表示二进制的每一位都向右移动一位,移动后为110,最右边的1舍弃。如果二进制最后一位是1,那么一定是奇数。
【地狱难度算法】已知一个有序序列,请原地删除序列中重复出现的元素,返回删除重复元素后的序列长度。只能使用o(1)额外空间来完成这个任务,例如[0,0,1,1,1,2,2,3,3,4,4,4,5],最终返回的长度是6,序列前6个元素是0 1 2 3 4 5
PDF文档预览:
篇幅有限,更多内容
扫描下方二维码即可领取完整版
备注“150练习题”
我会第一时间将资料发送给你