Python基础语法学习(工程向)-Stage1

输出的方式:

print(f'abscwdasd {num}')
print('asbduwiu %d', a)
print('asnidoian %d %d %d',a,b,c)

不换行

print('asbdiuabw',end = '')

输入

a = input('输入')
只能输入字符串形式,如果相当做数字用则将其转化为数字
只有合法的数字才能转化成功
a = int(input())

数据类型:

int:1  2
float:1,3  3,2
str: 'asdas'
complex: 1 + 3j
bool: True,False
None

字符串的定义和加减

def:

string = """
ajsejneakje
wadsjdk
"""string = 'asdubw'string = "asdbwkiankd"

±

string1 = 'abc'
string2 = 'def'string3 = string1 + string2
string3 == 'abcdef'

语句

判断:

if a > b:......
elif a < b:......
else :......

循环:

for循环for i in str:print(i)for i in range(a,b):	# 从a到b-1print(i)for i in range(a):		# 从0到a-1print(i)for i in range(a,b,c):	# 从a到b-1,并且每次加cprint(i)
while循环while 条件:......

数据容器

在python的数据容器中,有序代表着按照预定顺序插入,并且能够通过索引访问,支持切片操作等,这里的有序并非是自动排序的意思。

List

def:

lst = [1,2,3,4,5] #  定义出一开始就有元素的# 定义空列表
lst = []
lst = list()# 定义二维
lst = [[1,2,3],['a','b','c'],[1+1j,1+2j,1+3j]]

值得注意的是,python中的List列表是可以同时存储多种数据类型的

ex:
lst = [1,True,'asdbwiau',None,1 + 3j]

输出

print(lst)	# 这样输出会带着'[ ]'
for i in lst:	# 即遍历输出print(i)# 使用for循环进行下标遍历
for i in range(len(lst)):print(lst[i])

下标与数组类似,即从0开始,使用下标取出元素lst[2]
但是List的下标可以反向,即最后一个元素的下标作为-1,倒数第二个为-2

二维的下标访问方式可以类比数组

并且List是有序的

List自带的方法

查询下标:lst.index(元素),即查询询问元素的下标,找不到会报错

直接对相应下标修改:lst[i] = a,直接操作没什么好说的

插入操作:lst.insert(id,value),传入下标和元素,在指定下标位置插入指定元素,插入的时候,会把当前在id下标的元素以及之后的元素往后挤

插入尾部:lst.append(value),在列表的最后插入一个元素
将其他列表插入尾部:lst.extend([1,2,3])

删除元素:del lst[id],删除下标为id位置的元素,以及lst.pop(id),删完之后,id下标之后的所有元素往前走

删除指定元素:lst.remove(value),传入值,删除列表中第一个指定的值

清空列表:lst.clear()

统计某元素在列表中的数量:lst.count(value),返回value元素在列表中的数量

返回列表长度(元素数量):len(lst)

Tuple元组

Tuple是不可被修改的

def:

tup = (1,2,3)tup = ()
tup = tuple()# 定义一个元素的时候,必须要加一个逗号,不然不会被定义为tuple类型
tup = (1,)

同样可以定义二维且能够通过下标访问

Tuple是有序的

tuple的方法

仅有index(),count(),len(tup)三个方法,使用方式与List类似

str字符串

和C的char数组类似的原理

可以通过下标访问字符
但是需要注意python的字符串是不能通过任何方式(函数或下标操作)进行修改的

并且注意python中的字符串比较是一位位比较,就算长度不一样也是严格按照位数进行比较,例如'aaa'就小于'ab'

str的方法

查找元素的下标:string.index('abc'),会返回找到的第一个'and'中的'a'的下标

修改字符串:new_string = string.replace(string1,string2),将string中的所有字符串string1替换为string2,但是该操作会得到一个新的字符串,并不会修改字符串本身

分割字符串:string.split(分隔符字符串),按照给定的分割符字符串,将字符串划分为多个字符串,并存入列表List中,这个方法会返回一个List类型,分割字符串不会被包括进去

去掉前后空格操作:string.strip(),也是得到新的字符串

去掉指定字符串:string.strip(string1),去掉string中的所有不论顺序的包括string1中的字符的子字符串

统计字符串个数:string.count(string1)

统计长度:len(string)

¥# 序列类型数据结构的切片操作
序列[启始下标:结束下标:步长]
步长不写既为1,从启始下标取到结束下标-1
不写启始与结束下标,就是整个复制,在加上步长,就是从头到尾按照步长来取

如果步长为负数,那么就是倒着取,可以实现反转序列

实现反转后取元素操作如下:

string[::-1][1:5]

set集合

set不能存储重复元素,并且无序,可以实现自动去重
由于set无序,所以不能够使用下标进行查找元素

def:

s = {1,2,3}# 空集合
s = set()

set的方法

插入新元素:s.add(value),添加指定元素

移除元素:s.remove(value),移除指定元素

弹出元素:s.pop(),随机取出一个元素(返回该元素),并且从集合中将其移除

清空集合:s.clear()

取两个集合的差集:s = s1.difference(s2),取集合1和集合2的差集赋给集合s,即取出集合1中有且集合2中没有的

删除两个集合的交集:s1.difference_update(s2),在集合1内,删除和集合2相同的元素,这个方法会修改集合1

合并两个集合:s = s1.union(s2),合并集合1和集合2,返回给集合s

计算集合数量:len(s)

集合的遍历只能够使用for的形式进行

for i in s:print(i,end = '')

dict字典

可以类比C++中的map,即每个键对应一个值

def:

d = {key:value,key:value}# 定义空字典
d = {}
d = dict()

如果有重复的键,那么前面的键值对会被后面的键值对覆盖

不支持下标访问,可以直接通过key值访问:dic[key]

并且字典支持嵌套:d = {key :{key2 :value,key3:value}}

dict的方法

添加元素:dic[key] = value,直接赋值,类比C++map,如果key之前出现过,那么就直接覆盖为value

删除元素:dic.pop(key),返回给定的key对应的value,并且从字典中移除这个键值对

清空字典:dis.clear()

获取全部的key:dic.keys(),可以用变量接收,返回字典中全部的键,在遍历字典的时候也要通过这个方法,即取出全部key之后遍历所有key然后通过key求出对应的所有value

同时也可以直接遍历字典,这样取出的是字典的key值

统计字典元素个数:len(dic)

所有数据容器的通用方法

len(容器),求长度(元素个数)
max(容器),求容器中最大值
min(容器),求容器中最小值
list(容器),将给定容器转化为列表
str(容器),将给定容器转化为字符串
tuple(容器),将给定容器转化为元组
set(容器),将给定容器转化为集合

sorted(容器,[reverse = True]),将容器进行排序,sorted(容器)表示正向排序,sorted(容器,reverse = True)表示反向排序
如果对字典进行排序会丢失value

函数:

定义:

def 名称(传入参数):语句

关键字

return 数据类型global 变量名 # 把全局变量声明,不然直接定义的话就会被当成一个和全局变量同一个名字的局部变量

python的函数支持多个返回值:return 1,2,并且返回值的数据类型可以为任意

def func():return 1,2
# 也需要多个变量进行接收
a,b = func()

传入参数方式

1.可以按照顺序直接传参数,和其他语言一样
2.关键字传参,通过关键字 = value来指定参数

def func(value1,value2,value3):print(value1,value2,value3)func(value1 = 1,value2 = 2,value3 = 3)

这种传参方式不需要严格按照函数给定的顺序传参
3.缺省参数,使用默认参数,在定义函数的时候就给定,如果不再次给定这个参数的值,那么就会保持这个默认值,否则直接覆盖

def func(value1,value2,value3 = 3):print(value1)
func(1,2)

4.不定长参数,也叫可变参数,如果不确定参数个数就用不定长参数,有位置传递和关键字传递的方法

# 位置传递
def func(*args):print(args)

可以传入任意数量的参数给args,传入的所有参数会被合并为一个元组(tuple),即args是元组类型

# 关键字传递
def func(**kwargs):print(kwargs)func(value1 = 1,value2 = 2,value3 = 3)

会根据key = value的方式构建出字典,构建的时候会根据写入的值自动匹配数据类型

匿名函数

函数作为参数

不要理解错,python中函数的编写前后关系不会影响是否能够调用
对于一个想要调用其他函数的函数,可以在参数中写上函数的名字,这样就能够传入一个函数
在这里插入图片描述
在这里插入图片描述

lambda函数

lambda匿名函数不可重复调用

def:

lambda 传入参数:......(函数体,且只能为一行代码)ex:
a = 1
b = 1def func(f):print(f(a,b))func(lambda a,b:a+b)# 结果
2 

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

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

相关文章

厂里资讯之异步通知文章上下架

kafka及异步通知文章上下架 1)自媒体文章上下架 需求分析 2)kafka概述 消息中间件对比 特性ActiveMQRabbitMQRocketMQKafka开发语言javaerlangjavascala单机吞吐量万级万级10万级100万级时效性msusmsms级以内可用性高&#xff08;主从&#xff09;高&#xff08;主从&#…

代码随想录算法训练营第41天|● 01背包问题 二维 ● 01背包问题 一维● 416. 分割等和子集

背包问题 二维01 背包 有n件物品和一个最多能背重量为w 的背包。第i件物品的重量是weight[i]&#xff0c;得到的价值是value[i] 。每件物品只能用一次&#xff0c;求解将哪些物品装入背包里物品价值总和最大。 对于背包问题&#xff0c;有一种写法&#xff0c; 是使用二维数…

Android网络性能监控方案 android线上性能监测

1 Handler消息机制 这里我不会完整的从Handler源码来分析Android的消息体系&#xff0c;而是从Handler自身的特性引申出线上卡顿监控的策略方案。 1.1 方案确认 首先当我们启动一个App的时候&#xff0c;是由AMS通知zygote进程fork出主进程&#xff0c;其中主进程的入口就是Ac…

Mysqld数据库管理

一.Mysqld数据库类型 常用的数据类型 int 整型 无符号[0-4294967296&#xff08;2的32次方&#xff09;-1]&#xff0c;有符号[-2147483648&#xff08;2的31次方&#xff09;-2147483647]float单精度浮点 4字节32位double双精度浮点 8字节64位char固定长度的字符类型…

Matlab基础篇:数据输入输出

前言 数据输入和输出是 Matlab 数据分析和处理的核心部分。良好的数据输入输出能够提高工作效率&#xff0c;并确保数据处理的准确性。本文将详细介绍 Matlab 数据输入输出的各种方法&#xff0c;包括导入和导出数据、数据处理和数据可视化。 一、导入数据 Matlab 提供了多种方…

计算机网络:1概述、2物理层

目录 概述因特网网络、互连网&#xff08;互联网&#xff09;与因特网的区别与关系因特网发展的三个阶段因特网服务提供者&#xff08;Internet Service Provider&#xff0c;ISP&#xff09;因特网的标准化工作因特网的管理结构 三种交换电路交换分组交换报文交换 计算机网络性…

Threejs-09、贴图的加载与环境遮蔽强度设置

1、创建文理加载器 let textureLoader new THREE.TextureLoader();2、加载贴图 // 加载文理 let texture textureLoader.load("./img/image.png") // 加载ao贴图 let aoMap textureLoader.load("./img/image.png");3、创建一个平面 let planeGeomet…

常见日志库NLog、log4net、Serilog和Microsoft.Extensions.Logging介绍和区别

在C#中&#xff0c;日志库的选择主要取决于项目的具体需求&#xff0c;包括性能、易用性、可扩展性等因素。以下是关于NLog、log4net、Serilog和Microsoft.Extensions.Logging的基本介绍和使用示例。 包含如何配置输出日志到当前目录下的log.txt文件及控制台的示例&#xff0c;…

springboot整合sentinel接口熔断

背景 请求第三方接口或者慢接口需要增加熔断处理&#xff0c;避免因为慢接口qps过大导致应用大量工作线程陷入阻塞以至于其他正常接口都不可用&#xff0c;最近项目测试环境就因为一个查询的慢接口调用次数过多&#xff0c;导致前端整个首页都无法加载。 依赖下载 springboo…

网络安全(完整)

WAPI鉴别及密钥管理的方式有两种&#xff0c;既基于证书和基于预共享密钥PSK。若采用基于证书的方式&#xff0c;整个国产包括证书鉴别、单播密钥协商与组播密钥通告&#xff1b;若采用预共享密钥方式&#xff0c;整个国产则为单播密钥协商与组播密钥通告蠕虫利用信息系统缺陷&…

React+TS前台项目实战(十)-- 全局常用组件CopyText封装

文章目录 前言CopyText组件1. 功能分析2. 代码详细注释3. 使用方式4. 效果展示 总结 前言 今天这篇主要讲项目常用复制文本组件封装&#xff0c;这个组件是一个用于拷贝文本的 React 组件&#xff0c;它提供了拷贝&#xff0c;国际化和消息提示的功能 CopyText组件 1. 功能分…

每日一题——Python实现PAT甲级1144 The Missing Number(举一反三+思想解读+逐步优化)四千字好文

一个认为一切根源都是“自己不够强”的INTJ 个人主页&#xff1a;用哲学编程-CSDN博客专栏&#xff1a;每日一题——举一反三Python编程学习Python内置函数 Python-3.12.0文档解读 目录 我的写法 时间复杂度分析 空间复杂度分析 总体空间复杂度&#xff1a;O(N) 总结 我…

端口映射工具下载?

天联是一款强大的端口映射工具&#xff0c;它能够帮助用户实现远程数据采集管理、异地统一管理、随时随地协同办公等多种场景的应用。无论您是医药、餐饮、商超等零售行业的企业&#xff0c;还是需要使用OA、CRM、ERP、财务进销存等系统的企业&#xff0c;甚至是使用视频监控设…

适用于世界上最先进的医疗应用的高压电阻器

我们的电阻器专为用于医疗诊断、治疗和预防的各种产品而设计。从小型植入式和非侵入性设备到大型诊断成像设备&#xff0c;医疗制造商之所以选择 EAK电阻器&#xff0c;是因为操作环境是高电压和磁场&#xff0c;准确性和稳定性至关重要。 EAK 专有的精密打印技术生产出非常适…

如何应对 CentOS 的停更?

文章目录 如何应对 CentOS 的停更&#xff1f;Linux发行版CentOS停更后&#xff0c;我们可选的替代品RHEL LinuxRocky Linux公有云 LinuxDebian 系 Linux 如何应对 CentOS 的停更&#xff1f; Linux发行版 Linux内核是开源的&#xff0c;任何人都可以获取源代码&#xff0c;进…

嵌入式开发实验项目【基于Arduino的智能循迹小车】步进电机版本(含完整可执行详细代码)| 另附:测试行进传感器可用性,测试小车轱辘/轮胎是否可用

“真正的光明决不是永没有黑暗的时间,只是永不被黑暗所掩蔽罢了。真正的英雄决不是永没有卑下的情操,只是永不被卑下的情操所屈服罢了。” 🎯作者主页: 追光者♂🔥 🌸个人简介: 💖[1] 计算机专业硕士研究生💖 🌿[2] 2023年城市之星领跑者TOP1(哈尔…

Hi3861 OpenHarmony嵌入式应用入门--启动流程

目录 BootLoader的启动与运行 Hi3861 RiSC-V boot 启动文件介绍 Loaderboot 启动过程 Flashboot代码介绍 printf串口配置 内核启动任务 BootLoader的启动与运行 Hi3861 RiSC-V boot 启动文件介绍 - Hi3861 的引导程序分为两部分&#xff0c;一部分是在芯片出厂时已经固…

Redis-数据结构-跳表详解

Redis概述 Redis-数据结构-跳表详解 跳表&#xff08;Skip List&#xff09;是一种基于并联的链表结构&#xff0c;用于在有序元素序列中快速查找元素的数据结构。 Redis 中广泛使用跳表来实现有序集合&#xff08;Sorted Set&#xff09;这一数据结构。 1.跳表的基本概念和…

【源码】Spring事务之事务失效及原理

Spring事务 1、【源码】SpringBoot事务注册原理 2、【源码】Spring Data JPA原理解析之事务注册原理 3、【源码】Spring Data JPA原理解析之事务执行原理 4、【源码】SpringBoot编程式事务使用及执行原理 5、【源码】Spring事务之传播特性的详解 6、【源码】Spring事务之…

搜索与人工智能相结合如何解决企业数据问题?

作者&#xff1a;来自 Elastic Fermi Fang 企业数据是好处还是负担&#xff1f; 组织正被数据淹没 —— 从安全事件日志和应用程序错误消息到物联网指标和帮助中心常见问题解答。这些丰富的信息通常存在于孤立的孤岛中&#xff0c;在整合这些信息以提升客户体验、提高运营弹性…