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

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

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

test1,123456test2,123456test3,123456

解题思路

1.打开文件
2.循环列表,提取字典
3.提取key,value
4.写入文件

答案

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"]

解题思路

1.a、b两个列表长度一致,获取长度
2.一个for循环,每次获取同下标值
3.字符串拼接,添加到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(不区分大小写)退出循环,结束程序

解题思路

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

答案

'''
学习中遇到问题没人解答?小编创建了一个Python学习交流QQ群:725638078
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和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位数)

解题思路

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

答案

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乘法表

解题思路

1.外层循环,获取被乘数
2.内层循环,获取乘数

答案

'''
学习中遇到问题没人解答?小编创建了一个Python学习交流QQ群:725638078
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
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]

解题思路

1.非算法方案

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

2.算法方案

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

答案

# 非算法方案
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群:725638078
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和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以下的完全数

解题思路

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

答案

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

解题思路

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

答案

'''
学习中遇到问题没人解答?小编创建了一个Python学习交流QQ群:725638078
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
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") ➞ []

解题思路

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

答案

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]

解题思路

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

答案

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

答案

'''
学习中遇到问题没人解答?小编创建了一个Python学习交流QQ群:725638078
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
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") ➞ ""

解题思路

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

答案

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")

结尾给大家推荐一个非常好的学习教程,希望对你学习Python有帮助!

Python基础入门教程推荐:更多Python视频教程-关注B站:Python学习者
https://www.bilibili.com/video/BV1LL4y1h7ny?share_source=copy_web

Python爬虫案例教程推荐:更多Python视频教程-关注B站:Python学习者
https://www.bilibili.com/video/BV1QZ4y1N7YA?share_source=copy_web

16道关于Python基础方面的练习题相关推荐

  1. 整理了100道关于Python3基础知识的练习题,记得收藏

    100道关于Python3基础知识的练习题 实例1.数字组合 实例2.个税计算 实例3.完全平方数 实例4.这天第几天 实例5.三数排序 实例6.斐波那契数列 实例7.copy 实例8.九九乘法表 实 ...

  2. python基础练习(100)--练习题

    一.python基础练习(100) 1.1 基础(格式或语法) """只记录复杂化的题目和思路""" 003.比较和赋值 --执行如下代码会 ...

  3. 《每天五分钟冲击python基础之字符串练习题》(七)

    前言 相信通过上两节课的学习,同学们都已经能轻松掌握了,python字符串的入门和字符串的深入了,(ps:如果还没有学习的同学,请到这里先学习,再来看这节课喔!<每天五分钟冲击python基础之 ...

  4. python基础试题选择题_附带答案的15道经典python基础面试题

    1. 闭包 定义:闭包是由函数及其相关的引用环境组合而成的实体(即:闭包=函数+引用环境)(想想Erlang的外层函数传入一个参数a, 内层函数依旧传入一个参数b, 内层函数使用a和b, 最后返回内层 ...

  5. 呕心沥血整理的python基础知识与练习题【你值得拥有!!!!】

    一.基础语法 1.输入与输出(hellw word) # 国际化输出 print("hello word") print("word",end=" & ...

  6. 50道简单python函数题_Python练习题 函数设计(55~67)一

    Demo55 ** Python 计算机程序设计中会经常用到十六进制数(第3章曾介绍过)(参见附录C中对数系的介 绍).将十进制数d转换为一个十六进制数就是找到满足下面条件的十六进制数: ** 程序编 ...

  7. Python基础 30章练习题

    一.创建一个字符串,内容为'人生苦短,我用python,life is short' 1.统计字符串里面p的个数,l的个数, 2.反向查找s所在的位置, 3.将所有的小写单词换成大写 4.将所有的大写 ...

  8. python 基础班学习 练习题 2021-1-12

    作业1 : 解答: import random class Guss_Num:def __init__(self,cus_num):self.cus_num = cus_num# def __rand ...

  9. python基础 while循环练习

    这篇文章主要给大家分享的是5道关于python基础 while循环练习题,无论学习什么语言,练习都是必不可少的,下面文章的练习题挺精湛的,需要的朋友可以参考一下 1. 使用while循环输出1 2 3 ...

最新文章

  1. 直播回顾|结构光3D相机光机核心技术及3D成像性能分析
  2. codeforces 拼手速题2
  3. 如何攻克异地协作难题?看 Tower 的 72 个月远程工作实践
  4. 求教PHP+oracle的开发
  5. 微信小程序:生命周期
  6. 编辑器,webstorm,phpstorm系列配置方法汇总-笔记
  7. abp dapper mysql_ABP框架—后台:引入Abp.Dapper(10)
  8. 公司电脑可以做无盘系统吗?怎么优化速度?
  9. tomcat 原理与使用资料
  10. Git基础教程(三)
  11. 2020年TI杯大学生电子设计竞赛题A-无线运动传感节点
  12. Web漏洞扫描工具AWVS12使用详解
  13. ppt太大怎么变小,ppt如何压缩变小
  14. QuickTime 介绍 下载 安装(win7及以上版本)
  15. 【字节前端青训营】跟着月影学JavaScript——前端代码优化三大原则之各司其职,夜间模式小案例
  16. 常见监控摄像头专业术语(码流、分辨率、帧率)详解
  17. u盘文件不见但还占用容量文件办法?
  18. 爬虫07 爬取阿里旅行特价机票
  19. insert()用法
  20. PHP实现图片合并功能(根据群用户头像生成群logo图片)

热门文章

  1. 你不一定知道的几个前端小知识
  2. Java-小技巧-004-jdk时间,jdk8时间,joda,calendar,获取当前时间前一周、前一月、前一年的时间...
  3. 引入JQuery提示:Uncaught ReferenceError: $ is not defined
  4. Bootstrap3.0学习第十轮(下拉菜单、按钮组、按钮式下拉菜单)
  5. 业务服务管理究竟为何可望而不可及
  6. gentoo.tw的临时解决方法[转贴]
  7. linux下指数函数,用GeoGebra画指数函数图像、查看函数变化轨迹
  8. 【外贸人必看骗术】和中东客户做生意
  9. 华为云客户端_效果图云渲染已成趋势,云渲染如何选择?
  10. 【MM模块】Batch 批次管理1