1.有一个数据list of dict如下:

a = [{"test1": "123456"},{"test2": "123456"},{"test3": "123456"},]

写入到本地一个txt文件,内容格式如下:

test1,123456test2,123456test3,123456

解题思路

  • 打开文件
  • 循环列表,提取字典
  • 提取key,value
  • 写入文件

答案

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:579817333
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
lists = [{"yoyo1": "111111"},{"yoyo2": "222222"},{"yoyo3": "333333"},
]with open("test.txt", "w+", encoding="utf-8") as f:for data in lists:for key, value in data.items():f.write(f"{key},{value}\n")

2.

a = [1, 2, 3, 4, 5]
b = ["a", "b", "c", "d", "e"]

如何得出c = [“a1”, “b2”, “c3”, “d4”, “e5”]

解题思路

  • a、b两个列表长度一致,获取长度
  • 一个for循环,每次获取同下标值
  • 字符串拼接,添加到c列表

答案

a = [1, 2, 3, 4, 5]
b = ["a", "b", "c", "d", "e"]
c = []
# 方案一
for i in a:inx = a.index(i)d = b[inx]if d != -1:c.append(f"{d}{i}")
print(c)# 方案二
c = []
for i in range(0, len(a)):a1 = a[i]b1 = b[i]c.append(f"{b1}{a1}")
print(c)

3.写一个小程序:控制台输入邮箱地址(格式为 username@companyname.com), 程序识别用户名和公司名后,将用户名和公司名输出到控制台。

要求:

  1. 校验输入内容是否符合规范(xx@polo.com), 如是进入下一步,如否则抛出提 示"incorrect email format"。注意必须以.com 结尾
  2. 可以循环“输入–输出判断结果”这整个过程
  3. 按字母 Q(不区分大小写)退出循环,结束程序

解题思路

  • 固定以.com结尾,用正则匹配
  • 以 @ 和 . 分割字符串
  • 提取username和companyname

答案

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:579817333
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
while True:email = input("请输入邮箱:")if email.upper() == "Q":breakres = re.findall(".com$", email)if not res:print("incorrect email format")temp = email.split("@")name = temp[0]com = temp[1].split(".")[0]print(f"username:{name} , companyName:{com}")

4.如果一个 3 位数等于其各位数字的立方和,则称这个数为水仙花数。

例如:153 = 1^3 + 5^3 + 3^3,因此 153 就是一个水仙花数

那么问题来了,求1000以内的水仙花数(3位数)

解题思路

  • int转字符串序列,获取到每一位数
  • 调用math.pow函数求立方和
  • 三个数字立方和相加

答案

lists = []
for i in range(101, 1000):i = str(i)i1, i2, i3 = int(i[0]), int(i[1]), int(i[2])if int(i) == int(math.pow(i1, 3) + math.pow(i2, 3) + math.pow(i3, 3)):lists.append(i)print(lists)

5.打印99乘法表

解题思路

  • 外层循环,获取被乘数
  • 内层循环,获取乘数

答案

for i in range(1, 10):strs = ""for j in range(1, i + 1):strs += f"{i}*{j}={i * j} "print(strs)

6.问题1.对列表a 中的数字从小到大排序,问题2.排序后去除重复的数字

a = [1, 6, 8, 11, 9, 1, 8, 6, 8, 7, 8]

解题思路
非算法方案

  • 内置排序函数
  • 内置去重函数
  • 内置列表函数

算法方案

  • 冒泡算发排序
  • 内置去重函数
  • 内置列表函数

答案

# 非算法方案
a = [1, 6, 8, 11, 9, 1, 8, 6, 8, 6, 8]
a = sorted(a)
a = set(a)
a = list(a)
print(a)# 算法方案
a = [1, 6, 8, 11, 9, 1, 8, 6, 8, 6, 8]
for i in range(0, len(a) - 1):for j in range(0, len(a) - 1 - i):if a[j] > a[j + 1]:a[j], a[j + 1] = a[j + 1], a[j]a = set(a)
a = list(a)
print(a)

7.如果有一个列表a=[1,3,5,7,11]

问题:
1如何让它反转成[11,7,5,3,1]
2.取到奇数位值的数字,如[1,5,11]

解题思路

问题一:非算法方案

直接调用内置函数或切片

问题一:算法方案

  • for循环,循环次数取列表长度的一半
  • 头尾对称位置的值互换

问题二

切片,设置步长

答案

"""
如果有一个列表a=[1,3,5,7,11]
问题:1如何让它反转成[11,7,5,3,1]
"""
# 非算法方案一
a = [1, 3, 5, 7, 11]
a = a[::-1]
print(a)# 非算法方案二
a = [1, 3, 5, 7, 11]
a.reverse()
print(a)# 算法
a = [1, 3, 5, 7, 11]
lens = len(a)
for i in range(0, int(lens / 2)):a[i], a[lens - i - 1] = a[lens - i - 1], a[i]
print(a)"""
如果有一个列表a=[1,3,5,7,11]
问题:2.取到奇数位值的数字,如[1,5,11]
"""
a = [1, 3, 5, 7, 11]
a = a[::2]
print(a)

8.要求:判断数组元素是否对称。

例如[1,2,0,2,1],[1,2,3,3,2,1]这样的都是对称数组用Python代码判断,是对称数组打印True,不是打印False,如:x = [1, "a", 0, "2", 0, "a", 1]

解题思路

  • 循环取值,循环次数只需要列表长度的一半
  • 每次取头尾对称下标的值比较

答案

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:579817333
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
a, b, c = [1, 2, 0, 2, 1], [1, 2, 3, 3, 2, 1], [1, 2, 3, 4, 5]def duicheng(lists):lens = len(lists)flag = Truefor i in range(0, int(lens / 2)):if lists[i] != lists[lens - 1 - i]:flag = Falsebreakprint(flag)duicheng(a)
duicheng(b)
duicheng(c)

9.已知一个数列:1、1、2、3、5、8、13、。。。。的规律为从 3 开始的每一项都 等于其前两项的和,这是斐波那契数列。

求满足规律的 100 以内的所以数据

解题思路

  • 初始化列表[1,1]
  • 循环,从第三个下标开始的值都等于前一位的值+前前一位的值
  • 若新的值已大于100则跳出循环

答案

a = [1, 1]
for i in range(2, 100):sum = a[i - 1] + a[i - 2]if sum > 100:breaka.append(sum)
print(a)

10.使用列表生成式语法,将列表中[1, 3, -3, 4, -2, 8, -7, 6],找出大于0的数

解题思路

列表生成式 + 三元表达式

答案

a = [1, 3, -3, 4, -2, 8, -7, 6]
a = [x for x in a if x > 0]
print(a)

11.如果一个正整数等于除它本身之外其他所有除数之和,就称之为完全数。

例如:
6是完全数,* 因为6 = 1+2+3;下一个完全数是28 = 14+7+4+2+1。
求1000以下的完全数

解题思路

  • 外循环6-1000以内的数字
  • 内循环当前数字,得到所有整除数,并添加到一个列表
  • 列表求和比较当前数字是否一致

答案

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:579817333
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
all = []
for num in range(6, 1001):lists = []for n in range(1, num):if num % n == 0:lists.append(n)if sum(lists) == num:all.append(num)
print(all)

12.请写一个函数find_odd,参数是1个列表,请返回该列表中出现奇数次的元素

比如

find_odd([1, 1, 2, -2, 5, 2, 4, 4, -1, -2, 5]) ➞ -1
find_odd([20, 1, 1, 2, 2, 3, 3, 5, 5, 4, 20, 4, 5]) ➞ 5
find_odd([10]) ➞ 10

解题思路

  • 循环列表
  • 调用列表内置统计函数计算当前元素出现次数
  • 出现次数模2是否不等于0

答案

def find_odd(lists):res = []for i in lists:if lists.count(i) % 2 != 0:if i not in res:res.append(i)print(res)lists = [1, 1, 2, -2, 5, 2, 4, 4, -1, -2, 5]
list1 = [20, 1, 1, 2, 2, 3, 3, 5, 5, 4, 20, 4, 5]
list2 = [10, 1, 1, 1, 2, 2, 10, 5]
find_odd(lists)
find_odd(list1)
find_odd(list2)

13.写一个函数,该函数 参数为1个字符串,请分析并返回包含字符串中所有大写字母索引的有序列表。

比如

indexOfCaps("eDaBiT") ➞ [1, 3, 5]
indexOfCaps("eQuINoX") ➞ [1, 3, 4, 6]
indexOfCaps("determine") ➞ []

解题思路

  • 字符串也是序列,可以循环获取每个字符
  • 调用字符串内置函数判断是否大写

答案

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:579817333
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
def indexOfCaps(strs):res = []num = 0for i in strs:if i.isupper():res.append(num)num += 1print(res)indexOfCaps("eDaBiT")
indexOfCaps("eQuINoX")
indexOfCaps("determine")

14.请写一个函数,该函数 参数为数字列表,请算出另外一个列表,里面每个元素依次是参数列表里面元素的累计和。

比如 参数为[1, 2, 3, 4]
结果计算方法为[1, 1 + 2, 1 + 2 + 3, 1 + 2 + 3 + 4]
返回结果就应该是[1, 3, 6, 10]

解题思路

  • 外循环获取列表每个元素
  • 内循环获取当前元素and 之前的所有元素,最后相加
  • 为了不影响原列表的值,需要新创建一个列表来存放相加后的值

答案

def count_test(lists):res = []lens = len(lists)for i in range(0, lens):res.append(lists[i])for j in range(0, i):res[i] += lists[j]print(res)lists = [1, 2, 3, 4]
count_test(lists)

15.请写一个函数,该函数 参数为一个字符串,请验证该字符串是否是一个合法的电话号码,合法返回True,否则返回False

规则如下
1、该字符串必须全部都是数字。
2、该字符串长度为11位。
3、该字符必须以数字1开头。

比如

validate_phone("13423445566") ➞ True
validate_phone(".23rfs") ➞ False

解题思路

正则匹配,有则True,无则False

答案

def validate_phone(strs):res = re.findall("^1[0-9]{10}", strs)if res:return Truereturn Falseprint(validate_phone("13423445566"))
print(validate_phone(".23rfs"))

16.写一个函数replace,该函数参数是两个字符串,第一个参数给出一个源,第二个参数是指定范围。

要求该函数将 第一个参数里面的字符串中 落在第二个参数指定范围内的字符串替换为 # 号

比如

replace("abcdef", "c-e") ➞ "ab###f"
replace("rattle", "r-z") ➞ "#a##le"
replace("microscopic", "i-i") ➞ "m#croscop#c"
replace("", "a-z") ➞ ""

解题思路

  • 先将指定范围的字母提取出来
  • Python里面,字符是可以直接比较大小的
  • 通过直接比较,将在指定范围的字符 replace 成 #

答案

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:579817333
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
def replace(strs, round):start, end = round.split("-")for i in strs:if i >= start and i <= end:strs = strs.replace(i, "#")print(strs)replace("abcdef", "c-e")
replace("rattle", "r-z")
replace("microscopic", "i-i")
replace("", "a-z")

17.写一个函数alphabet_index,该函数参数是1个字符串,要求该函数返回一个新字符串,里面是 参数字符串中每个字母依次对应的 数字。如果是非字母,则忽略它

字母"a" 和"A" 都对应 1, "b"和"B"都对应2, "c"和"C"对应3, 依次类推

比如

alphabet_index("Wow, does that work?")
➞ "23 15 23 4 15 5 19 20 8 1 20 23 15 18 11"alphabet_index("The river stole the gods.")
➞ "20 8 5 18 9 22 5 18 19 20 15 12 5 20 8 5 7 15 4 19"alphabet_index("We have a lot of rain in June.")
➞ "23 5 8 1 22 5 1 12 15 20 15 6 18 1 9 14 9 14 10 21 14 5"

解题思路

  • 将字符串统一为大写字母
  • 需要设置一个对比值
  • 大写A的ASCII码为65,但A对应1,所以设置一个对比值为64
  • 循环字符串,如果是字母则换算出它的ASCII码,再减去对比值

答案

def alphabet_index(strs):strs = strs.upper()temp = 64res = ""for i in strs:if i.isalpha():res += str(ord(i) - temp) + " "print(res)alphabet_index("Wow, does that work?")
alphabet_index("The river stole the gods.")
alphabet_index("We have a lot of rain in June.")

Python基础练习题合集相关推荐

  1. python基础语法合集-Python基础语法合集.zip

    [实例简介]精心整理的Python基础语法合集,变量,循环,输入输出等等都有,主要是知道概念和怎么用的 如果打开文件后有文字变成符号的,先把字体改为宋体就正常了 [实例截图] [核心代码] 目录 了解 ...

  2. python基础语法合集-Python基础语法(四)—列表、元组、字典、集合、字符串

    列表 基本概念列表是有序的元素集合,所有元素放在一对中括号中,用逗号隔开,没有长度限制: 列表索引值以0为开始值,-1为从未尾的开始位置. 列表可以使用+操作符进行拼接,使用*表示重复. 当列表元素增 ...

  3. python基础语法合集-Python基础语法介绍

    元组 基本概念.特性顺序存储相同/不同类型的元素 定义:使用()将元素括起来,元素之间用","括开 特性:不可变,不支持添加,修改,删除等操作 查询:通过下标查询元组指定位置的元素 ...

  4. python基础语法合集-python常用语法合集

    判断语句 (使用缩进来划分语句块,相同缩进数的语句在一起组成一个语句块) if condition_1: statement_block_1 elif condition_2: statement_b ...

  5. Python基础练习题:杂乱无章的页面列表【难度:1级】--景越Python编程实例训练营,不同难度Python习题,适合自学Python的新手进阶

    Python基础练习题:杂乱无章的页面列表[难度:1级]: 你得到了一本古老的书,不幸的是有几页错误的位置,幸运的是你的计算机有一个从"1"到"n"的顺序的每个 ...

  6. Python编译环境合集

    Python是数学建模和数据分析的重要工具之一.在运用Python前,构建一个完备的环境是非常重要的步骤.今天,我们就为大家介绍一下Python的常用环境~ [Python常用环境合集] 01.自带的 ...

  7. CTF 六大方向基础工具合集

    本文中提到的所有工具在ctf部落中均有,加入方式见文末. CTF 六大方向基础工具合集 今天来为大家分享CTF 六大方向基础工具简介集合. 一.MISC方向 杂项往往是不能被归到其他类别里的题目,所以 ...

  8. 这些Python基础练习题你会几个?

    在人工智能大火的当今,Python 作为人工智能时代的首选语言已经越来越收到追捧:但是许多非科班.零基础的小伙伴常常苦于没有合适的入门 Python 的教程而感到苦恼:本人是一名资深Python开发, ...

  9. 【Python常用函数合集】clip函数、range函数等

    你应该听说过,应用Python,可以让你处理一天的重复工作量,缩短到几分钟甚至更短.从此解放上班时间,研究更多更有效率的工作方法.进一步提升工作效率,让工作更出彩.这不是广告,这是实锤图片.    本 ...

最新文章

  1. mysql2000 sp4_SQL Server 2000 (SP4)笔记整理(二):数据库表
  2. POJ - 2142 The Balance(扩展欧几里得)
  3. python3爬虫初探(五)之从爬取到保存
  4. linux系统键盘记录器,可截获到 QQ 密码 键盘记录器源码
  5. 【转】构建微服务架构的最佳实践2/3
  6. 使用docker环境编译驱动
  7. asp.net 事件调用事件问题?
  8. MASK RCNN在tensorflow 2.5中运行
  9. 国内ERP技术公司综合
  10. ASUS AURA无法启动问题
  11. 《免费下载论文的网站》
  12. 回想让你最有成就感的bug是什么?你是如何发现这个bug的?
  13. 大二暑假java培训第七天
  14. 字节跳动裁员不发年终奖致员工与HR薅头发互殴?字节回应来了
  15. super关键字的用法
  16. 2021年全球指拨开关收入大约420.8百万美元,预计2028年达到519.8百万美元
  17. 体力劳动?脑力劳动?
  18. 可以查询天气的日历——QT制作第一个自己的小软件
  19. 微软WebCast(视频教材下载工具)上千视频下载
  20. 华东交大计算机绘图,华东交通大学理工学院本科毕业设计(论文)新手册.doc

热门文章

  1. centos7 系统缓存清理
  2. iOS 开发各种传值
  3. [转]ActionScript 3.0入门:Hello World、文件读写、数据存储(SharedObject)、与JS互调
  4. [CareerCup] 14.4 Templates Java模板
  5. mysql 让一个存储过程定时作业的代码(转)
  6. C++默认构造函数的一点说明
  7. Type对象获得泛型类型的两个扩展方法
  8. 计算机应用技术国外现状,浅析计算机应用技术的现状及发展趋势
  9. 【FI学习笔记】客户发票收款清账
  10. SAP ABAP Debug 小技巧