🚀 作者 :“码上有前”
🚀 文章简介 :Python
🚀 欢迎小伙伴们 点赞👍、收藏⭐、留言💬
Python练习实例
往期精彩内容
【Python基础练习100题–第一篇:基础篇】
【Python基础练习100题–第二篇:文件篇】
【Python每日十题菜鸟版–第一天】
【Python每日十题菜鸟版–第二天】
【Python每日十题菜鸟版–第三天】
【Python每日十题菜鸟版–第四天】
【Python每日十题菜鸟版–第五天】
【Python每日十题菜鸟版–第六天】
🍉前言
这些题都是在菜鸟官网上的练习题,
对于刚学python的新手来说十分的适合,
可以加强和巩固我们的基础。
嘿嘿 一起噶油吧!
🍉1.计算列表元素之和
方法一:循环累加
list = [1, 2, 23]
list_sum = 0
# 方法一:数组遍历,逐个相加
for value in list:
list_sum += value
方法二:使用reduce()方法
# 该方法比较高级
# 导入reduce模块中的functools
from functools import reduce
# 方法二:使用reduce方法,lambad函数,还需要导入包
list = [1, 2, 23]
list_sum = reduce(lambda x, y: x+y, list)
print(f"方法二计算出列表{list}数字总和是:{list_sum}")
方法三:直接使用sum函数
# 方法三:直接使用list_sum函数
list = [1, 2, 23]
print(f"方法三计算出列表{list}数字总和是:{sum(list)}")
方法四 :使用迭代
def list_add(list, size):
if size == 0:
return 0
else:
return list[size-1] + list_add(list, size - 1)
print(f"方法四计算出列表{list}数字之积是:{list_add(list,len(list))}")
2.计算列表之积
方法一: 遍历累积
list = [1, 2, 23]
List_multiply = 1
# 方法一:遍历
for value in list:
List_multiply *= value
方法二:使用reduce函数
list = [1, 2, 23]
List_multiply = reduce(lambda x, y: x*y, list)
print(f"方法二计算出列表{list}数字之积是:{List_multiply}")
方法三:使用递归
def list_product(list,size):
if size == 0:
return 1
else:
return list[size-1] * list_product(list,size - 1)
print(f"方法三计算出列表{list}数字之积是:{list_product(list,len(list))}")
3. 计算列表的最大和最小值
方法一:直接使用max和min函数
list = [999, 1, 2, 3, 4, 11, 12, 13, 14, 15]
# 方法一:直接使用min和max函数
print(f"方法一解出的该列表{list}的最大值是:{max(list)}和最小值是:{min(list)}")
方法二:使用sort进行排序之后,取第一个和最后一个数
list = [999, 1, 2, 3, 4, 11, 12, 13, 14, 15]
# 注意: sort方法不适合int和str类型混在一起的比较,会报错。但是分别都是一种类型不会报错
temp_list = list[::]
temp_list.sort()
# 最后一个可以使用[-1]索引,也可以使用[len(temp_list)-1]
print(f"方法二解出的该列表{list}的最大值是:{temp_list[-1]}和最小值是:{temp_list[0]}")
4.移除字符串中指定位置的元素
方法一:切片
str = "you love me, i love you"
# 方法一 :切片 移除第三个元素
str = str[:2] + str[3:]
print(f"方法一之后的字符串:{str}")
方法二:使用替换
# 方法二,使用repalce方法,移除第三个元素
str = str.replace(str[2], "", 1)
# 注意 如果这里不加第三个参数1,那么会输出 yoloveme,iloveyou。
# 即在替换之后还会把所有的空格去掉
print(f"方法二之后的字符串:{str}")
方法三:转换成列表再remove再使用join变成字符串
# 这种方法比较繁琐
# 但是没办法,string中没有remove方法
# 童鞋们试一试看 嘿嘿
🍉5.判断字符是否存在该字符串中
方法一:使用字符串自带的find()方法
# 直接使用string.find 函数
def check_sub_string(string, sub_string):
if (string.find(sub_string) == -1):
print("不存在")
else:
print("存在")
check_sub_string("string", "str")
方法二:使用in操作符
# 使用in 试一试
if ("str" in "string"):
print("存在")
else:
print("不存在")
方法三:使用索引
# 返回子串第一次匹配成功的位置下标
str_index = 'string'.index('ing')
print(str_index) # 3
🍉6. 集合的运算
数据结构空的创建
# 数据结构空的创建 tuple = () list = [] dict = {}
# 这里特别注意集合空的创建 因为会和字典空的创建重合 所以集合空的创建是set = set()
# 非空的创建 tuple = (1,"1") list = [1,"1"] set = {1."1"} dict = {"1" : 1}
# 关于数据结构的顺序性,即是否能使用索引来寻找元素 set是无序的
# 在此重温一下一个重要的知识点
# 不可修改的数据结构:数字 字符串 元组
# 可修改的数据结构:集合 字典 列表
集合间的运算
# 集合间的运算
# 多个集合的差集:s.diference()
# 两个集合的并集:s.union()
# 多个集合的交集: s.intersection()
# 判断两个集合是否有交集: s.isdisjoint() 有也返回True
# 判断是否在子集:s.issubset()
# 两个集合不重复元素集合: symmetric_difference()
集合的基本操作
# 集合的基本操作
# 添加:s.add(x) s.update([],{},())
# 移除: s.remove(X) 不存在报错 s.discard(x) 不存在不会报错 s.pop() 随机删除
# 计算长度 : len(s)
# 清空集合: s.clear()
# 元素是否存在: x in s 在则返回True,否则返回Flase
# 拷贝: s.copy()
7.字符串执行为代码
# 使用exec()这个函数,通常字符串很多要是用到三引号
# 补充一下 字符串有三种写法 分别是单引号 双引号 三引号 而三引号是可以换行的
# 给定一个字符串代码,然后使用 exec() 来执行字符串代码。
def exec_string():
LOC = """
name = "李sha猪"
print(f"我的名字叫{name}")
"""
exec(LOC)
# 注意空行和空格的处理
exec_string()
8. 将字符串时间转换为时间戳
# 将字符串的时间转换为时间戳
import time
a1 = "2019-5-10 23:40:00"
# 先转换为时间数组
timeArray = time.strptime(a1, "%Y-%m-%d %H:%M:%S")
print(timeArray)
# 转换为时间戳
timeStamp = int(time.mktime(timeArray))
print(timeStamp)
# 格式转换 - 转为 /
a2 = "2019/5/10 23:40:00"
# 先转换为时间数组,然后转换为其他格式
timeArray = time.strptime(a2, "%Y/%m/%d %H:%M:%S")
print(timeArray)
otherStyleTime = time.strftime("%Y/%m/%d %H:%M:%S", timeArray)
print(otherStyleTime)
9.使用正则提取字符串中的url
# 使用正则表达式需要导入re库
import re
def Find(string):
# findall() 查找匹配正则表达式的字符串
url = re.findall('https?://(?:[-\w.]|(?:%[\da-fA-F]{2}))+', string)
return url
string = 'Runoob 的网页地址为:https://www.runoob.com,Google 的网页地址为:https://www.google.com'
print("Urls: ", Find(string))
# (?:x) 非捕获括号,使得你能够定义与正则表达式运算符一起使用的子表达式
10.打印自己的字体
# 使用字典这种方式比较好,比较高级
# 比使用if...else 或者case都好
# 打印自己设计的字体
stringmap = {
'A': ''' -----A-----
---A---A---
--A-A-A-A--
-A-------A-''',
'B': ''' ---B-B-B---
---B--B----
---B--B----
---B-B-B---''',
'C': ''' ---C-C-C---
--C--------
--C--------
---C-C-C---''',
'D': ''' ---D-D-D---
---D----D--
---D----D--
---D-D-D---''',
'J': ''' -----J-----
-----J-----
--J--J-----
---JJJ-----''',
'L': ''' --L--------
--L--------
--L--------
--L-L-L-L--''',
'Z': ''' --Z--Z--Z--
-------Z---
----Z------
--Z--Z--Z--'''
}
name = input("输入你的名字:")
print(name, type(name))
for ch in name:
print(stringmap[ch], end='')
print('\n', end=' ')
🍉 学无止境,都看到这了,点个赞关注支持一下呗!嘿嘿(* ̄︶ ̄)