python 基础

1.Python

1.1  环境搭建:官网下载python,编译器:pycharm或jupyter

1.2  变量

(1)语法:变量名=变量

(2)标识符命名规则:由数字、字母、下划线组成;不能以数字开头;不能使用内置关键字;严格区分大小写

(3)命名习惯:见名知意,驼峰命名(大驼峰小驼峰)

1.3  格式化输出

(1)输出函数:print()

(2)格式化函数:format();

语法:’{}’.format()

作用:用于格式化字符串,可以接受无限个参数,可指定顺序,最后输出的是一个字符串

%s:字符串

%d:十进制数

%f:十进制浮点数,小数点默认保留6位

1.4  输入函数:input()

语法:变量名 = input()控制台输入的为字符串类型;(变量名存储输入函数)

1.5  数据类型

python可自定义数据类型(理论上有无数种数据类型);

默认的有6种标准数据类型:

(1)数值类型

整数型int;常用的四种声明方式:变量名=数值(十进制);变量名=0b数值(二进制0和1);变量名=0o数值(八进制);变量名=0x数值(十六进制0-9A-F);

浮点数:float;变量名=小数;

复数型(不常用):complex;两种声明方式:变量名=实数+虚数i;变量名=complex(实数,虚数);

布尔值:bool(True和False)

(2)字符串类型String

1  字符串:string,文字类型,三种声明方式:变量名=’内容’;变量名=“内容”;变量名=‘‘‘内容’’’;

2  转义符:

\(续航符:拼接作用)

\\转译为一个单纯的\,或\’转译为一个单纯的’,或\”转移为一个单纯的”

\n换行符:

 \r回车符: 通常不单独使用,结合换行符一起使用

 \t水平制表符:占位,4个字符算一个位置

r:元字符串,在任意字符串前添加r或R,使字符串内任意的转译符号失效,直接显示

(3)列表list:可变的有序序列(增删改查),通常用于存储同类项目的集合,元素类型可不必相同,元素可重复,用[元素1,元素2...]声明

(4)元组tuple:不可变的有序序列(内部元素不可改变),通常用来保存程序中不可修改的部分,元素类型可不必相同,元素可重复,用(元素1,元素2...)声明

(5)集合set:无序序列,元素不可重复,常见的用途(成员检测,从序列中去重,数学中的集合计算例如交集并集差集等)

分为可变集合set和不可变集合frozenset,声明方式{元素1,元素2...}

(6)字典dict:可变的无序序列,是一种映射类型,以键值对形式存储(key唯一),用{key:value...}声明

1.6 缩进 :一个tab,或4个空格

1.7 注释:

(1)单行注释 #

2)多行注释 三个单引号 '''

1.8 运算符

(1)算术运算符 **幂运算,%取余数, //除法取整运算

(2)比较运算符 <、>、>=、==、<=、!=

(3)赋值运算符 =、+=、-=

(4)逻辑运算符    and/or/not

2.程序结构

1.顺序结构:从上往下依次执行,中间没有任何的判断和跳转

2.选择结构:根据条件判断的结果来选择执行不同的代码,可以是单分支、双分支以及多分枝

单分支:if:

双分支:if:    else:     else不能单独使用,与同层级向前匹配最近的if

多分支:if:    elif:    else:

三元表达式:简化条件判断语句,得到的是一个表达式   

语法:[条件成立的表达式] if 条件 else[条件不成立的表达式]

为了保证程序的清晰易读,复杂的程序逻辑不建议使用三元表达式

实战:

If else 判断

三元表达式

3.循环结构:根据条件来重复执行某段代码或者遍历序列中的元素,通过while和for语句实现循环

while 条件(布尔类型表达式):循环体

for 变量名 in 迭代对象:循环体    常用的迭代对象:列表、字典、元组、集合、字符串

负数可以从大到小

嵌套循环:99乘法表

3.数据类型的具体操作

查看数据类型-type()

数据转换

列表的基本操作

list1 = [] # 定义一个空列表
list2 = [1, 2.2, "hello", [1, 2, 3]]

# 访问列表
print(list2) # 查看整个列表
print(list2[2]) # 通过下表查看单个元素

# 增删改操作
# 1.直接添加到列表的最后一位append()
list2.append(2)
print(list2)


# 2.指定位置新增元素insert,下标从0开始
list2.insert(2,"s")
print(list2)


# 删除
# remove()删除某个元素,如果元素重复,默认删除第一个
list2.remove(1)
print(list2)


# 2.del 根据下标决定删除谁
del list2[5]
print(list2)


# 3. __delitem__()通过下标删除元素
list2.__delitem__(3)
print(list2)


# 修改对应元素,重新赋值的过程
list2[0] = 100
print(list2)

# 列表的运算符操作
# 1.+和*,+:实现列表的合并  *:实现列表元素的重复
# 2.比较运算符都可以使用,实现列表内部元素的比较,从第0个元素开始,按照数值的大小或ascii表的顺序实现比较
# 3.地址比较:is和is not 实现列表内存地址的比较
# 4.成员比较:in和not in 实现列表是否包含某个元素的判断
# 5.自运算符操作:+=,*=

# 列表的合并
list3 = [1,2,3]
list4 = [1,2,3,"a","b"]
print(list3+list4)
print(list4+list3)

# 列表元素的重复
print(list3*3)

print(list3<list4)
print(list3==list4)
print(list3 is list5)
print(1 in list3)
print("a" in list3)

# 列表的切片 对列表进行截取、反转等操作
'''
[a:b:c] a:从哪开始 b:到哪位置 c:步长    左闭右开
list[-1] 返回列表最后一个
list[:1] == list[0:1:1] 返回列表第01的元素
list[1:] 返回第二个到最后一个数据
list[-1:] 返回最后一个数据
list[:-1] 返回第一个到倒数第二个数据
list[::1] 返回原列表
list[::-1] 返回原列表的倒序
list[::2] 返回从左往右 步长为2进行切片
'''

list6 = [5,14,75,22,39]
print(list6[1:3])  #
从下标1开始到下标3结束,不包含下标3的元素
print(list6[2:])  # 从下标2开始,到末尾最后一个元素结束
print(list6[:2]) # 截取列表前两个元素,下标为01
print(list6[-2:]) #
截取末尾2个元素

#反转
print(list6[::-1])

[14, 75]

[75, 22, 39]

[5, 14]

[22, 39]

[39, 22, 75, 14, 5]

# 列表转换 tuple(),set(),list()
list8 = [5,14,75,22,39]
print(list8.count(5)) #
统计某个数值在列表中出现的次数
# list8.clear()
# max(),min(),sort()
list8.sort()
print(list8)


# 拷贝
# 1.浅拷贝 copy()  list2 = list1.copy()
# 2.深拷贝 import copy  list2 = copy.deepcopy(list)
# 浅拷贝只适用于一维数组
# 深拷贝完全的内存拷贝
list9 = list8.copy()
import copy
list10 = copy.deepcopy(list8)
print(list9)
print(list10)

元组

tuple1 = (11, 22, 33, 44, 55)
# 枚举+遍历
for index, value in enumerate(tuple1):
    print(index, value)
   
for index in zip(tuple1):
    print(index)

0 11

1 22

2 33

3 44

4 55

(11,)

(22,)

(33,)

(44,)

(55,)

字典

dict1 = {}
# dict1["name"] = "aa"
# dict1["age"] = 18
a = (("name", "aa"),("age", "18"))
b = (("name1", "aa"),("age1", "18"))
dict2 = dict(a)
# print(dict1)
dict2["father"] = "bb"
dict2.update(b)
print(dict2)


# 获取某个key的value
print(dict2["father"])
# dict2.get(key,
返回值)
print(dict2.get("father1",0)) #
如果key存在,返回value,否则返回0

{'name': 'aa', 'age': '18', 'father': 'bb', 'name1': 'aa', 'age1': '18'}

bb

0

# 返回所有键值对
print(dict2.keys())
print(dict2.values())

for i in dict2.values():
    print(i)

for j in dict2.keys():
    print(j)

aa

18

bb

aa

18

name

age

father

name1

age1

字典的删除

dict2.pop("father") # 删除对应键值对,返回相应的键

dict2.popitem() # 默认删除最后一组键值对

del dict2["name"]
del dict2

dict2.clear()

遍历字典

集合set

a = {1, 2, 3, 4, 5}
b = {5, 6, 7, 8}

# 差集 -
print(a-b)
print(b-a)
#
并集 | 去除重复值
print(a|b)
#
交集 &
print(a&b)
#
对称差集 ^ 两个集合中不同时存在的元素
print(a^b)

{1, 2, 3, 4}

{8, 6, 7}

{1, 2, 3, 4, 5, 6, 7, 8}

{5}

{1, 2, 3, 4, 6, 7, 8}

3.函数

def 函数名(参数):
    '''加注释'''
    函数体
    [return 函数的返回值]
   
调用方式:函数名(参数)

无参函数

有参函数:

位置参数(必须参数,就是必须要传入的参数,传入的参数也必须按照函数定义时的顺序,参数名=参数值)

默认参数(可以给参数赋予一个默认值,调用参数时如果参数有实际参数传入,则使用实际参数,如果没有实际参数传入就默认使用默认参数。如果同时存在默认参数和位置参数,则未知参数放前面,参数默认值必须是不可变类型,不要使用可变类型)、

命名关键字参数(用*号分隔命名关键字参数,*号后面的参数必须以 参数名=参数值的形式传入,如果有未知参数和默认参数,则命名关键字要求在位置参数之后,默认参数之前)

可变参数(参数前面加*,可变参数可以理解为将收集到的所有未知参数打包成元组,调用函数的时候可以传入多个元素,看成是元组的拆包)

关键字可变参数(**kwargs,他可以理解为将收集到的所有命名关键字参数打包成字典,调用函数的时候,看成字典的拆包)

返回值return

在需要返回的地方使用return关键字返回任意类型的数值和表达式,终止函数的执行。

一个函数中可以存在多个return语句,表示在不同条件下终止函数并返回对应的数值。

Return在函数中不是必须的,没有return表示函数没有返回值。

匿名函数lambda-lambda表达式

如果函数定比价简单,并且只有参数比较简单时可以使用lambda表达式去表达函数。lambda参数:返回值表达式

Lambda关键字必须存在,lambda后面跟的就是参数,如果多个参数就用逗号隔开

4.模块和包

模块:就是一个以.py结尾的文件,模块中可以定义函数、类和变量,甚至是可执行代码

Python模块分为2种:内置模块和第三方模块

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

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

相关文章

【数据结构与算法——TypeScript】数组、栈、队列、链表

【数据结构与算法——TypeScript】 算法(Algorithm)的认识 解决问题的过程中&#xff0c;不仅仅 数据的存储方式会影响效率&#xff0c;算法的优劣也会影响效率 什么是算法&#xff1f; 定义&#xff1a; &#x1f7e2; 一个有限指令集&#xff0c;每条指令的描述不依赖于言语…

UE5、CesiumForUnreal接入WMTS格式地图瓦片,如ArcGIS、Mapbox、天地图

文章目录 1.实现目标2.实现过程2.1 WMTS与TMS2.2 cesium-native改造2.3 CesiumForUnreal插件改造2.4 WMTS瓦片加载测试2.5 EPSG:3857与43263.参考资料1.实现目标 通过改造cesium-native和CesiumForUnreal插件,参考tms的栅格瓦片地图加载逻辑,实现在UE5中通过CesiumForUnreal…

后端进阶之路——万字总结Spring Security与数据库集成实践(五)

前言 「作者主页」&#xff1a;雪碧有白泡泡 「个人网站」&#xff1a;雪碧的个人网站 「推荐专栏」&#xff1a; ★java一站式服务 ★ ★前端炫酷代码分享 ★ ★ uniapp-从构建到提升★ ★ 从0到英雄&#xff0c;vue成神之路★ ★ 解决算法&#xff0c;一个专栏就够了★ ★ 架…

数据结构——空间复杂度

3.空间复杂度 空间复杂度也是一个数学表达式&#xff0c;是对一个算法在运行过程中临时占用存储空间大小的量度 。 空间复杂度不是程序占用了多少bytes的空间&#xff0c;因为这个也没太大意义&#xff0c;所以空间复杂度算的是变量的个数。 空间复杂度计算规则基本跟实践复杂…

springboot中@Async的简单用法

springboot中Async的简单用法 文章目录 springboot中Async的简单用法开启配置Async的使用无返回值调用带返回值的调用 开启配置 在配置文件或者入口文件上新增注解: EnableAsync即可 Async的使用 对应需要异步调用的方法上添加Async注解即可 无返回值调用 controller代码 …

四项代表厂商,Kyligence 入选 Gartner 数据及人工智能相关领域多项报告

近日&#xff0c;全球权威的技术研究与咨询公司 Gartner 发布了《2023 年中国数据、分析及人工智能技术成熟度曲线》、《2023 年分析与商业智能技术成熟度曲线报告》、《2023 年数据管理技术成熟度曲线报告》&#xff0c;Kyligence 分别入选这三项报告的指标平台 Metrics Store…

[保研/考研机试] KY187 二进制数 北京邮电大学复试上机题 C++实现

描述 大家都知道&#xff0c;数据在计算机里中存储是以二进制的形式存储的。 有一天&#xff0c;小明学了C语言之后&#xff0c;他想知道一个类型为unsigned int 类型的数字&#xff0c;存储在计算机中的二进制串是什么样子的。 你能帮帮小明吗&#xff1f;并且&#xff0c;小…

《兴森大求真》重磅来袭!先进电子电路可靠性大揭秘

兴森实验室&#xff0c;让可靠看得见 前言介绍 芯片性能不断增强、先进封装不断演进&#xff0c;导致封装基板信号互连的IO数量和密度不断增加、PCB的层数增加、孔间距减小、厚径比提升&#xff0c;可靠性的挑战正在加剧。 电路板作为各种电子元器件的载体和电路信号传输的枢…

ROS入门-常见的rostopic命令及其用法的示例

目录 常见的rostopic命令及其用法的示例 1. 列出所有可用的话题&#xff1a; 2. 获取话题详细信息&#xff1a; 3. 实时显示话题消息内容&#xff1a; 4. 发布消息到话题&#xff1a; 5. 发布随机消息到话题&#xff1a; 6. 查看话题消息类型&#xff1a; 7. 查看话题消…

UDP简介

UDP 1. UDP格式2. UDP特点3. 差错检验 1. UDP格式 16位UDP长度&#xff0c;表示整个数据报&#xff08;UDP首部UDP数据&#xff09;的最大长度&#xff1b; 如果校验和出错&#xff0c;就会直接丢弃; 2. UDP特点 无连接: 知道对端的IP和端口号就直接进行传输&#xff0c;不需…

idea使用protobuf

本文参考&#xff1a;https://blog.csdn.net/m0_37695902/article/details/129438549 再次感谢分享 什么是 protobuf &#xff1f; Protocal Buffers(简称protobuf)是谷歌的一项技术&#xff0c;用于结构化的数据序列化、反序列化。 由于protobuf是跨语言的&#xff0c;所以用…

xxx酒业有限责任公司突发环境事件应急预案WORD

导读&#xff1a;原文《xxx酒业有限责任公司突发环境事件应急预案word》&#xff08;获取来源见文尾&#xff09;&#xff0c;本文精选其中精华及架构部分&#xff0c;逻辑清晰、内容完整&#xff0c;为快速形成售前方案提供参考。 目 录 1 总则 1.1 编制目的 1.2 编制…

【vue3】基础知识点-pinia

学习vue3&#xff0c;都会从基础知识点学起。了解setup函数&#xff0c;ref&#xff0c;recative&#xff0c;watch、computed、pinia等如何使用 今天说vue3组合式api&#xff0c;pinia 戳这里&#xff0c;跳转pinia中文文档 官网的基础示例中提供了三种写法 1、选择式api&a…

python进阶

目录 Json数据格式 前言 JSON格式 python数据和Json数据的相互转化 网络编程 套接字 socket服务端编程步骤 socket客户端编程步骤 python操作mysql数据库 查询并接收数据 数据插入 Json数据格式 前言 JSON是一种轻量级的数据交换格式&#xff0c;可以按照JSON指定…

【福建事业单位-资料分析】04 倍数、特殊增长率

【福建事业单位-资料分析】04 倍数、特殊增长率 一、倍数1.1现期倍数1.2 基期倍数总结 二、特殊增长率2.1 间隔增长率间隔倍数和间隔基期&#xff08;都要先求得间隔增长率r&#xff09; 2.2 年均增长率年均增长率的比较年均增长率计算-居中代入 2.3 混合增长率总结 三、总结 一…

E. Power of Points - 思维

分析&#xff1a; 题意本质就是找点在数组中任意一个位置时和所有的端点之间的距离和&#xff0c;但是直接暴力会超时&#xff0c;可以对数组排个序&#xff0c;设当前遍历的是xi&#xff0c;那么此时求的到各端点的距离就是j从1 ~ i - 1的所有端点与xi的距离之和&#xff0c;也…

配置nginx服务端口时-在同一个页面中打开多个地址端口-查看服务情况

1&#xff1a;把代码保存到xxx.html文件中 2&#xff1a;因为一个个端口打开查看&#xff0c;实在太麻烦了 3&#xff1a;在一个页面中查看多页的响应才能提高测试效率 <html><head><title>本地连接列表</title> </head><body><cente…

【C语言学习】函数的定义和调用

一、函数定义 要有返回类型、函数名和函数体 二、调用函数 函数名&#xff08;函数值&#xff09;&#xff1b; &#xff08;&#xff09;起到表示函数调用的重要作用&#xff0c;即使没有参数也需要&#xff08;&#xff09; 若有参数&#xff0c;则需要给出正确的数量和顺序…

vscode ssh远程的config/配置文件无法保存解决

问题 之前已经有了一个config&#xff0c;我想更改连接的地址和用户名&#xff0c;但是无法保存&#xff0c;显示需要管理员权限&#xff0c;但以管理员启动vscode或者以管理员权限保存都不行 未能保存“config”: Command failed: “D:\vscode\Microsoft VS Code\bin\code.c…

『PostgreSQL』在 PostgreSQL中创建只读权限和读写权限的账号

&#x1f4e3;读完这篇文章里你能收获到 理解在 PostgreSQL 数据库中创建账号的重要性以及如何进行账号管理掌握在 PostgreSQL 中创建具有只读权限和读写权限的账号的步骤和方法学会使用 SQL 命令来创建账号、为账号分配适当的权限以及控制账号对数据库的访问级别了解如何确保…