【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=' ')

🍉 学无止境,都看到这了,点个赞关注支持一下呗!嘿嘿(* ̄︶ ̄)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码上有前

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值