python_04

37、列表推导式

# 作用:快速生成列表
# 列表变量名 = [x for x in range(开始值,结束值,步长) if 条件]
# 注意:左闭右开
list1 = [i for i in range(0,100)]
print(list1)
# list1 = [i for i in range(0,100)]
# print(list1)list1 = [i for i in range(5,20,2)]
print(list1)list1 = [i for i in range(20,5,-2)]
print(list1)list1 = [i for i in range(6,-10,-2)]
print(list1)# 还可以添加if条件,满足条件才生成列表
list1 = [i for i in range(0,100) if i % 2 == 0]  # 生成0 到 100 之间的 偶数,但不包括 100
print(list1)list2 = [i for i in range(1,10,) if i % 2 != 0]
print(list2)# 练习:[0,10,20,30,40,50,60,70,80,90,100]
# 方法一
list3 = [i for i in range(0,101,10)]
print(list3)# 方法二:
list3 = [i for i in range(0,101) if i % 10 == 0]
print(list3)

38、元组

# 1.元组和列表一样,都可用于存储数据
# 2.通过元组可以存放数据,不能被修改
# 元组类型单词 tuple
tuple1 = ("刘备","张飞","关羽","赵云")
print(tuple1)
print(type(tuple1))# 元组数据如果只有一个,务必在后面添加逗号,否则被认为是字符串类型
tuple1 = ("刘备",)
print(tuple1)
print(type(tuple1))tuple1 = ("赵云","刘备","张飞","关羽","赵云","赵云")
print(tuple1[2])# 计算个数某个元素的个数     count() 括号里只允许有一个参数,不能设置第二个参数
print(tuple1.count("赵云"))# 获取索引值 index() 可以有第二个参数,代表从这个参数起开始查找
#print(tuple1.index("张飞"))
print(tuple1.index("赵云",1))# 长度
print("元组长度")
print(len(tuple1))
print("---")# 元组不允许修改# 无法使用sort进行排序,所以提供了最大、最小值语法
tuple2 = (1,9,3,7,66,33)
print(max(tuple2))
print(min(tuple2))
print("---")
# 元组数据也可以进行遍历
for i in tuple2:print(i)

39、字典

# 字典不仅可以保存不同类型的数据,可以把不同类型数据在保存时加以# 1.基本结构: 字典名 = {}
# 2.大括号内结构为: 键名:键值  (俗称键值对儿)  键名一般为英文
#                 键值:实值
# 3.多个键值对之间使用逗号隔开# 键名一般不用中文
ren = {"name":"张三","age":18,"height":180,"gender":"man"}
print(ren)
print(type(ren))      # 字典类型的单词:dict# .print回车,可以快速把想输出的内容放在print的小括号中
print(ren["age"]) # 查询值 ["键名"] 可以获取键名对应的键值ren["salary"] = 20000 # 新增了一个键值对数据 如果没有这个键,相当于新增了一个键值对
print(ren)ren["salary"] = 30000 # 如果没有这个键,相当于新增了一个键值对,如果有这个键,相当于修改
print(ren)ren.pop("height") # pop("键名") 删除键和对应的值 必须设置参数 参数必须为键名
print(ren)# del ren["name"]  # 删除功能,不推荐使用
# print(ren)# ren.clear() # 清空字典
# print(ren)
print("---------")ren = {"name":"张三","age":18,"height":180,"gender":"man"}
print(ren.keys())   # 获取所有键名
print(ren.values()) # 获取所有键值
print(ren.items())  # 获取所有的键名和键值 把所有的键名和键值放在 元组 里面print("---------")# 字典的循环遍历
for key in ren.keys():    # 遍历键名print(key)
print("==========")
for val in ren.values():  # 遍历键值print(val)print("---------")
# 练习:找到值为9 的键名
dict1 = {"a":23,"b":2,"c":9,"d":13}
for i in dict1:     # 直接遍历字典变量,就相当于.keys()# print(i)if dict1[i] == 9:print(i)

40、拆包

# 快速把列表或元组中的数据保存到变量中# 拆列表
list1 = ["刘备","关羽","张飞"]
a,b,c = list1
print(a)
print(b)
print(c)# 拆元组
# 拆包时,等号左右一定要相等才可以
tuple1 = ("刘备","关羽","张飞")
a,b,c = tuple1
print(a)
print(b)
print(c)# 拆字典
dict1 = {"name":"张三","age":18,"height":180}print(dict1.items())
for key,val in dict1.items(): # items()是元组数据,相当于进行元组拆包print(f"key是{key}",end="")print("  ",end="")print(f"val是{val}")

41、函数

# 函数的作用,在开发程序时,使用函数可以提高编写的效率以及代码的重用
def hello():# 函数体 具体函数的实现内容# pass 占位,不让pycharm报错print("hello 1")print("hello 2")print("hello 3")# 想要函数体中的代码执行,就需要调用函数
hello()# --------------------------------------------------------# 加法计算
# def sum():
#     a = 1
#     b = 2
#     print(a+b)
# sum()
def sum():a = 1b = 2print(a+b)
sum()# 打印20个星号
# def start():
#     print("*" * 20)
# start()
def start():print("*" * 20)
start()# # 函数传参
# def PName(userName):
#     print("hello"+userName)
# PName("小明")
def PName(username):print("hello" + username)
PName("小李")# # 函数传参
# def sum(a,b):       # a和b就是形参(形式上的参数,不实际参与运算)
#     print(a + b)
# sum(2,2)            # 调用时候的小括号中写的叫实参(实际参与运算的)
# sum(20,10)
def sum(a,b):print(a + b)
sum(2,3)# # 练习:
# def sayHi(name):
#     print(f"{name} 你好")
# sayHi("刘备")
# sayHi("张飞")
def sayHi(name):print(f"{name}    ---你好")
sayHi("张三")# 练习2:自己传参打印20个*
# def xing(num):
#     print("*" * num)
# xing(8)
def xing(num):print("*" * num)
xing(8)

42、函数返回值

# def sum(a,b):
#     return a + b
# print(sum(2,5))
def sum(a,b):return a + b
print(sum(2,5))# 练习1:
# 定义一个函数,接受2个参数,实现乘法操作,返回结果
# def mian(height,width):
#     return height * width
# res = mian(5,8)
# print(res)
def mian(height,width):return height * width
res = mian(5,9)
print(res)# 练习2:定义一个函数,接收3个参数,实现相加,返回结果
def buy(a,b,c):return a + b + c#print("lalalala")  # return 之后的代码,肯定不会执行lis = buy(10,20,30)
print(lis)

43、函数的嵌套

def fun1():print("这是fn1")def fun2():print("这是fn2")fun1()fun2()

44、全局和局部变量

def fn1():a = 2   # 函数体中定义的变量是 局部变量 只能在函数体内使用,外面无法使用print(a)
fn1()# 局部变量在自己函数体内可以使用,函数体外不能使用
# 全局变量:所有人都可以用,但是如果自己有,就优先使用自己的,如果自己没有,再使用全局的。全局变量一旦被修改,后续获取的全局变量值就是被修改之后的
chair = "公共的座椅"  # 没有写在任何函数体里的变量,就算全局变量def my_home():chair = "我自己家的沙发"chair = "我自己沙发坏了"print(chair)
my_home()   # 调用函数的时候打印chair,会就近原则打印自己家的沙发文字def wang_home():print(chair)
chair="有人把公共的座椅弄坏了"wang_home()     # 调用的时候,wang家没有chair,只能使用全局的chair

45、局部转全局

num1 = 10def fn1():global num1 # 后面再出现num1,就代表全局变量的num1(局部变量 转 全局变量)num1 = 2    # 让全局变量num1的值变成2
fn1()
print(num1)# 练习
name = "张三"
def  fn1():global name      # global 把局部变量 装换为 全局变量name = "李四"     # 此时改变的是全局变量的值,如果去掉 上一行的global 则是局部变量
fn1()
print(name)

46、形参和全局变量

def fn1(a):# 形参属于局部变量a += 1print(a)a = 10
fn1(a)
print(a)    # 全局的10def fn1(a):    # 参数传递列表也是可以的a.insert(4,666)
a = [1,2,3,4]
fn1(a)
print(a)

47、函数的缺省值


def fn1(a,b=2): # 缺省值:如果调用的时候传了这个缺省值,那么就用你传的值,如果没传,就有这个缺省值(默认值)print(a)print(b)
fn1(1)
fn1(1,10)list1 = [6,42,19,66]
# list1.sort(reverse=False)
list1.sort(reverse=True)
print(list1)def fn1(a,b=2):   # 缺省值:如果调用的时候传了这个缺省值,那么就用你传的值,如果没传,就有这个缺省值print(a)print(b)
# fn1(1)
fn1(1,10)def fn1(a=1,b=2):   # 缺省值:如果调用的时候传了这个缺省值,那么就用你传的值,如果没传,就有这个缺省值print(a)print(b)
fn1(66,77)   # 串了就用传的值
fn1()  # 没传就用缺省值
fn1(66)   # 两个缺省值,传一个实参,代表第一个缺省值失效def fn1(a=1,b):    # 不能把有缺省值的形参写在没有缺省值的形参前面print(a,b)def fn1(a,b=2,c=3):print(a,b,c)# fn1(1)    # 1 2 3
# fn1(10,20)  # 10 20 3
fn1(10,c=66)   # 10 2 66  如果想传递实参的时候,指定参数名,那么就是给这个参数去设置的值def fn1(a,b=2,c=3):print(a,b,c)
fn1(1)
fn1(10,c=99)

48、了解多值传参

def fn1(num1,*args,**kwargs):print(num1)print(args)print(kwargs)
fn1(2,3,4,5,6,7,name="张三",age=18,height=180)def fn2(num1,*args,**kwargs):print(num1)print(args)print(kwargs)
fn2(8,2,2,2,2,2,2,2,name="李四",age=19,height=200)

49、拉姆拉表达式

sum = lambda a,b: a + b     # 匿名函数:适用于临时一次使用,写法简单
# :后面就是要return的内容
print(sum(1,2))# fun1(a,b):
#     return a + bsum = lambda a,b: a + b
print(sum(6,2))sum = lambda a,b: a + b
print(sum(7,10))

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/22450.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MoE 大模型的前世今生

节前,我们星球组织了一场算法岗技术&面试讨论会,邀请了一些互联网大厂朋友、参加社招和校招面试的同学。 针对算法岗技术趋势、大模型落地项目经验分享、新手如何入门算法岗、该如何准备、面试常考点分享等热门话题进行了深入的讨论。 合集&#x…

Vue3整合Tailwindcss之padding样式类

04 常用基础样式 padding 样式类 什么是内边距 基础样式 ClassPropertiesp-0padding: 0px;px-0padding-left: 0px; padding-right: 0px;py-0padding-top: 0px; padding-bottom: 0px;ps-0padding-inline-start: 0px;pe-0padding-inline-end: 0px;pt-0padding-top: 0px;pr-0pa…

kafka-生产者监听器(SpringBoot整合Kafka)

文章目录 1、生产者监听器1.1、创建生产者监听器1.2、发送消息测试1.3、使用Java代码创建主题分区副本1.4、application.yml配置----v1版1.5、屏蔽 kafka debug 日志 logback.xml1.6、引入spring-kafka依赖1.7、控制台日志 1、生产者监听器 1.1、创建生产者监听器 package co…

图片批量纵向拼接神器:轻松插入间隔像素,生成真彩绚丽长图,让你的创意无限延伸!

在数字艺术的世界里,图片拼接早已不再是简单的组合,而是创意与技术的融合。如果你正在寻找一款能够快速将图片进行纵向拼接,并且能轻松插入间隔像素,同时保证色彩绚丽的神器,那么,我们首助编辑高手的长图拼…

如何实现单例模式及不同实现方法分析-设计模式

这是 一道面试常考题:(经常会在面试中让手写一下) 什么是单例模式 【问什么是单例模式时,不要答非所问,给出单例模式有两种类型之类的回答,要围绕单例模式的定义去展开。】 单例模式是指在内存中只会创建…

React 中的 ForwardRef的使用

React 中的 forwardRef Hooks 是指将子组件的 Dom 节点暴露给给父组件,在 React 中如果想要访问 Dom 节点是通过 useRef 这个 hooks,而 forwardHook 在 useRef 做了扩展。useRef 是当前组件中间中的节点,而 forwardRef 相当于做了一层封装将父…

springAOP 使用aop代替SqlsessionUtil业务层操作

在Maven框架pom配置文件中导入spring相关依赖&#xff1a; <dependencies><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.33</version></dependency><dependency…

【前端每日基础】day36——vue组件的通信方式

在Vue.js中&#xff0c;组件通信是一个重要的概念&#xff0c;它允许组件之间进行数据传递和事件处理。Vue.js提供了多种方式来实现组件之间的通信&#xff0c;适用于不同的场景和需求。以下是Vue组件通信的几种常见方式及其详细介绍&#xff1a; 父子组件通信 父组件向子组件…

6、资产评估专家指引第9号—数据资产评估

本专家指引是一种专家建议。评估机构执行资产评估业务,可以参照本专家指引,也可以根据具体情况采用其他适当的做法。中国资产评估协会将根据业务发展,对本专家指引进行更新。 第一章 引言 第一条 针对数据资产特点,结合目前实际操作中的部分难点和要点,中国资产评估协会…

mac配置Personal Access Tokens

背景 在macbook环境中&#xff0c;使用idea、android studio、xcode时&#xff0c;使用gitlab需要登录&#xff0c;而直接使用文明密码是不允许登录的&#xff0c;这时就需要换种方式&#xff0c;这里有两种&#xff1a;ssh、Access Tokens&#xff0c;在公用电脑上推荐使用Ac…

第一个SpringBoot项目

目录 &#x1f4ad;1、新建New Project IDEA2023版本创建Sping项目只能勾选17和21&#xff0c;却无法使用Java8&#xff1f;&#x1f31f; 2、下载JDK 17&#x1f31f; &#x1f4ad;2、项目创建成功界面 1、目录 &#x1f31f; 2、pom文件&#x1f31f; &#x1f4ad;3、…

前K个高频元素-力扣

本题想到的解法是使用哈希表首先统计数组中每个元素出现的次数&#xff0c;然后对出现次数进行排序&#xff0c;最后进行输出。看了题解学习到使用优先级队列 小顶堆来完成&#xff0c;小顶堆的排序规则由自己来定义。 代码如下&#xff1a; class Solution { public:class My…

ctfshow 年CTF web

除夕 Notice: Undefined index: year in /var/www/html/index.php on line 16 <?phpinclude "flag.php";$year $_GET[year];if($year2022 && $year1!2023){echo $flag; }else{highlight_file(__FILE__); } 弱比较绕过很简单&#xff0c;连函数都没有直…

代码随想录算法训练营Day59 | 503.下一个更大元素II 42. 接雨水

代码随想录算法训练营Day59 | 503.下一个更大元素II 42. 接雨水 LeetCode 503.下一个更大元素II 题目链接&#xff1a;LeetCode 503.下一个更大元素II 思路&#xff1a; class Solution { public:vector<int> nextGreaterElements(vector<int>& nums) {// …

【数据分享】中国民政统计年鉴(1949-2022)

大家好&#xff01;今天我要向大家介绍一份重要的中国民政统计数据资源——《中国民政统计年鉴》。这份年鉴涵盖了从1949年到2022年中国民政统计全面数据&#xff0c;并提供限时免费下载。&#xff08;无需分享朋友圈即可获取&#xff09; 数据介绍 从1949年到2022年&#xf…

程序员的职业素养

在当今这个快速发展的技术世界中&#xff0c;程序员的职业素养已经成为了一个热门话题。随着技术的不断进步&#xff0c;程序员不仅需要掌握强大的技术能力&#xff0c;更需要具备一系列的职业素养来确保他们能够在职业生涯中取得成功。 《程序员的职业素养》一书由著名的软件工…

云原生架构案例分析_4.某电商业务云原生改造

名称解释&#xff1a; AHAS&#xff1a;应用高可用服务&#xff08;Application High Availability Service&#xff09;是一款专注于提高应用高可用能力的SaaS产品&#xff0c;主要包含多活容灾、故障演练和流量防护三个独立的功能模块。其中流量防护已迁移至微服务治理服务MS…

Java - Path接口和Files工具类

在Java中&#xff0c;Path接口和Files工具类是Java 7中引入的java.nio.file包的一部分&#xff0c;用于文件和文件系统的操作。这些API提供了比传统的java.io包更为强大和灵活的文件处理功能。 Path接口 Path接口表示文件系统中的路径&#xff0c;它可以是文件名或目录名。Pa…

再度“冲三”失利的泸州老窖,还能拿出什么“杀手锏”?

正值“618”&#xff0c;白酒行业也迎来了重要创收时刻。 据悉&#xff0c;天猫“618购物节”开卖首日&#xff0c;酒水直播销售额增长超1300%&#xff0c;拉动白酒行业增长147%。 这一增长背后&#xff0c;赛道的火药味也愈发浓厚&#xff0c;今年618大促中&#xff0c;五粮…

第十周:目标计划管理

1. 企业的目的 企业不同时期的目标是不一样的&#xff0c;第一阶段是保证存活&#xff1b;第二阶段是为了发展&#xff0c;加强公司业绩&#xff0c;达到预期的盈利&#xff1b;第三阶段是在发展壮大之后&#xff0c;有更多精力投入公司健康运转的事情&#xff0c;保证长久的生…