python学习-基础1

一.简介

Python的特点和优势是什么? 
Python是一种解释型语言、动态类型语言、面向对象编程语言,具有丰富的库和广泛的应用领域。

python大小写敏感,靠缩进保证代码的执行

二.Python中的数据类型

Python的八种数据类型八种数据类型分别是: number(数字)、string(字符串)、Boolean(布尔值)、None(空值)、 list(列表)、tuple(元组)、dict(字典)和集合(set)。

不可变数据(3 个):Number(数字)、String(字符串)、Tuple(元组);
可变数据(3 个):List(列表)、Dictionary(字典)、Set(集合)

2.1数字

支持三种不同的数值类型:整型(int)、浮点型(float)、复数(complex)
整型:通常称为整数,是整数或者负数,不带小数点。python3整型类型没有大小限制
浮点型:浮点型由整数部分与小数部分组成
复数型:复数由实数部分和虚数部分构成,可以用a + bj,或者complex(a,b)表示, 复数的实部a和虚部b都是浮点型

数字类型的关系
1.三种数字类型存在一种逐渐“扩展”关系。
  整数  ->  浮点数  ->  复数
2.不同数字类型之间可以进行混合运算,运算结果为最宽的类型
例如 :  124 + 4.0 = 127.0 (整数 + 浮点数 = 浮点数)

python数字类型相互转换:
int(x) 将x转换为一个整数。
float(x) 将x转换到一个浮点数。
complex(x) 将x转换到一个复数,实数部分为 x,虚数部分为 0。complex(x, y) 将 x 和 y 转换到一个复数,实数部分为 x,虚数部分为 y。x 和 y 是数字表达式。

python数字运算
x + y                x与y之和
x - y                 x与y之差
x * y                 x与y之积
x / y                 x与y之商,返回的是浮点数
x // y              不大于x与y之商的最大整数,向下取整数
x % y               x与y之商的余数
x ** y               x的y次幂
abs(x)             x的绝对值
divmod(x,y)    (x//y, x%y)
pow(x,y)         x的y次幂

判断数字类型
函数:type(x), 返回x的类型,适用于所有类型的判断。

2.2 字符串

字符串是由0个或多个字符组成的有序字符序列;
字符串有2种4类表示方法:
解法1:单引号表示字符串
str1 = 'Hello, World!'
解法2:双引号表示字符串
str2 = "Hello, World!"
解法3:使用三引号表示多行字符串
str3 = '''Hello,
World!'''
解法4:使用三引号表示字符串,并包含特殊字符
str4 = '''Hello,
World!
This is a string with
new lines and special characters:
$!@#$%^&*()'''
解法5:使用三引号表示空字符串
str5 = ''''''

字符串的使用:
1.索引index
var1[0]
var1[-1]
2.分片
使用str[M: N: K]根据步长对字符串切片:
str 是要进行切片操作的字符串。
start 是起始索引,表示要切片的起始位置(包含该位置的字符)。
end 是结束索引,表示要切片的结束位置(不包含该位置的字符)。
step 是步长,表示每隔多少个字符进行切片,默认为 1。
str[1:3] # "tr" 
#获取从偏移为1到偏移为3的字符串,不包括偏移为3的字符
str[1:] # "tring"
#获取从偏移为1到最后的一个字符,不包括最后一个字符
str[:3] #"str"
# 获取从偏移为0的字符一直到偏移为3的字符串,不包括偏移为3的字符串
str[:-1] #strin"
#获取从偏移为0的字符一直到最后一个字符(不包括最后一个字符串)     
str[:] #"string"
#获取字符串从开始到结尾的所有元素   
str[-3:-1] #"in"
#获取偏移为-3到偏移为-1的字符,不包括偏移为-1的字符 
str[::-1] # "gnirts"
#反转输出

字符串操作符
x+y:实现字符串的拼接
n * x 或 x * n:复制n次字符串x
x in s:如果x是s的子串,返回True,否则返回False

python内置函数处理字符串
len(x):长度,返回字符串x的长度len(“一二三456”) 结果为 6
str(x):任意类型x所对应的字符串形式str(1.23)结果为"1.23" str([1,2])结果为"[1,2]"
-hex(x) 或 oct(x):整数x的十六进制或八进制小写形式字符串hex(425)结果为"0x1a9" oct(425)结果为"0o651"
chr(u):x为Unicode编码,返回其对应的字符
ord(x):x为字符,返回其对应的Unicode编码

额外知识:Unicode编码
Python字符串中每个字符都是Unicode编码字符
处理文件或网络传输,经常需要将字符串编码为特定格式,例如UTF-8
统一字符编码,即覆盖几乎所有字符的编码方式
从0到1114111 (0x10FFFF)空间,每个编码对应一个字符
将Unicode字符串转换为其他编码(如UTF-8),可以使用.encode()方法,用于写文件
将其他编码转换为Unicode,可以使用.decode()方法,用于读内容到python内存

字符串的方法
str.lower()或str.upper():返回字符串的副本,全部字符小写/大写
str.split([separator[, maxsplit]]):方法把字符串分成序列。
    separator -- 分隔符,默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等。
    maxsplit -- 分割次数。
    返回分割后的字符串列表。
    str.split(",",3)
str.count(sub):返回子串sub在str中出现的次数

str.replace(old,new[,max]): 返回字符串str副本,所有old子串被替换为new
str.center(width[,fillchar]) :字符串str根据宽度width居中,fillchar可选

str.strip(chars):从str中去掉在其左侧和右侧chars中列出的字符
str.join(iter):在iter变量除最后元素外每个元素后增加一个str,",".join("123456")

字符串类型的格式化
<模板字符串>.format(<逗号分隔的参数>)
"{1}:计算机{0}的CPU占用率为{2}%".format("2018-10-10","c",10)
"{0: >20}".format("CPU:")  填充的单个字符/<左对齐,>右对齐,^居中对齐/宽度

2.3数组/元组/字典/集合

名称元组Tuple()数组List[]字典Dict{}集合Set{}
初始化

tup1 = ();
tup1 = ('physics', 'chemistry', 1997, 2000);
tup2 = (1, 2, 3, 4, 5 );
tup3 = "a", "b", "c", "d";
元组中只包含一个元素时,需要在元素后面添加逗号来消除歧义
tup1 = (50,);

a = [1,2,[1,2,3]]
arr = []
dict = {‘ob1′:’computer’, ‘ob2′:’mouse’, ‘ob3′:’printer’}
每一个元素是pair,包含key、value两部分。key是Integer或string类型,value 是任意类型。
键是唯一的,字典只认最后一个赋的键值。

person ={"student","babe",123,123}

#空set集合用set()函数表示

person1 = set() #表示空set,不能用person1={}

不允许修改一维arr.append('aaa')
二维arr[0].append('aaa')
arr.insert(n, 值)
arr += [数组元素]
可以直接增加一个元素,如果同名,则会改变原来的key的元素的值
dict_arr['d'] = 'dog'

增加单个元素

person.add("student")

增加多个元素,数据类型是元组不能是LIST

person.add((1,23,"hello"))

数据类型是元组、字典不能是数组

person.update((1,23,"hello"))

不允许修改arr[0]=newValue不支持改变

下标索引从0开始,截取,组合等

tup1[1]

tup2[1:5]

下标索引,从0开始,截取组合

arr[1]

dict_arr['d'] 

D.get(key, 0) #同dict[key],多了个没有则返回缺省值,0。[]没有则抛异常
D.has_key(key) #有该键返回TRUE,否则FALSE
D.keys() #返回字典键的列表
D.values()
D.items()

"teacher" in person
del tup;整个元组

arr.pop(index):默认删除最后一个,若指定则删除指定index元素

del arr[0,2]

D.clear() #清空字典,同del dict

D.popitem() #得到一个pair,并从字典中删除它。已空则抛异常

person.remove("babe")

person.discard("student")

person.pop() #在list里默认删除最后一个,在set里随机删除一个。

person.clear()全部清空

内置函数

tup3= tup1+tup2;

cmp(tuple1, tuple2):比较两个元组元素。
len(tuple):计算元组元素个数。
max(tuple):返回元组中元素最大值。
min(tuple):返回元组中元素最小值。
tuple(seq):将列表转换为元组

遍历

for k, v in enumerate(arr):
    print k, v

#输出所有的key
print dict_arr.keys()

#输出所有的value
print dict_arr.values()

D.update(dict2) #增加合并字典

D.copy() #拷贝字典
D.cmp(dict1,dict2) #比较字典,(优先级为元素个数、键大小、键值大小)

print(str1,str2)

print(str1 - str2) #-号可以求差集

print(str2-str1) #空值

#print(str1+str2) #set里不能使用+号

三、 内置函数

有68个Python内置函数,包含12大类
和数字相关
1.数据类型
bool : 布尔型(True,False)
int : 整型(整数)
float : 浮点型(小数)
complex : 复数
2.进制转换
bin() 将给的参数转换成二进制
otc() 将给的参数转换成八进制
hex() 将给的参数转换成十六进制
​3. 数学运算
abs() 返回绝对值
divmode() 返回商和余数
round() 四舍五入
pow(a, b) 求a的b次幂, 如果有三个参数. 则求完次幂后对第三个数取余
sum() 求和
min() 求最小值
max() 求最大值

和数据结构相关
1. 序列
(1)列表和元组
list() 将一个可迭代对象转换成列表
tuple() 将一个可迭代对象转换成元组
(2)相关内置函数
reversed() 将一个序列翻转, 返回翻转序列的迭代器
slice() 列表的切片
(3)字符串
str() 将数据转化成字符串
bytes() 把字符串转化成bytes类型
ord() 输入字符找带字符编码的位置
chr() 输入位置数字找出对应的字符
ascii() 是ascii码中的返回该值 不是就返回u
repr() 返回一个对象的string形式
2.数据集合
字典:dict 创建一个字典
集合:set 创建一个集合
frozenset() 创建一个冻结的集合,冻结的集合不能进行添加和删除操作。
3. 相关内置函数
len() 返回一个对象中的元素的个数
sorted() 对可迭代对象进行排序操作 (lamda)
语法:sorted(Iterable, key=函数(排序规则), reverse=False)
Iterable: 可迭代对象
key: 排序规则(排序函数), 在sorted内部会将可迭代对象中的每一个元素传递给这个函数的参数. 根据函数运算的结果进行排序
reverse: 是否是倒叙. True: 倒叙, False: 正序\
enumerate() 获取集合的枚举对象
all() 可迭代对象中全部是True, 结果才是True
any() 可迭代对象中有一个是True, 结果就是True
zip() 函数用于将可迭代的对象作为参数, 将对象中对应的元素打包成一个元组, 然后返回由这些元组组成的列表. 如果各个迭代器的元素个数不一致, 则返回列表长度与最短的对象相同
fiter() 过滤 (lamda)
    语法:fiter(function. Iterable)
    function: 用来筛选的函数. 在filter中会自动的把iterable中的元素传递给function. 然后根据function返回的True或者False来判断是否保留留此项数据 , Iterable: 可迭代对象
map() 会根据提供的函数对指定序列列做映射(lamda)
    语法 : map(function, iterable)
    可以对可迭代对象中的每一个元素进行映射. 分别去执行 function
和作用域相关
locals() 返回当前作用域中的名字
globals() 返回全局作用域中的名字
和迭代器生成器相关
range() 生成数据
next() 迭代器向下执行一次, 内部实际使⽤用了__ next__()⽅方法返回迭代器的下一个项目
iter() 获取迭代器, 内部实际使用的是__ iter__()⽅方法来获取迭代器

字符串类型代码的执行
eval() 执行字符串类型的代码. 并返回最终结果
exec() 执行字符串类型的代码
compile() 将字符串类型的代码编码. 代码对象能够通过exec语句来执行或者eval()进行求值

输入输出
print() : 打印输出
input() : 获取用户输出的内容

内存相关
hash() : 获取到对象的哈希值(int, str, bool, tuple). hash算法:(1) 目的是唯一性 (2) dict 查找效率非常高, hash表.用空间换的时间 比较耗费内存

文件操作相关
open() : 用于打开一个文件, 创建一个文件句柄

模块相关
__ import__() : 用于动态加载类和函数

帮 助
help() : 函数用于查看函数或模块用途的详细说明

调用相关
callable() : 用于检查一个对象是否是可调用的. 如果返回True, object有可能调用失败, 但如果返回False. 那调用绝对不会成功

查看内置属性
dir() : 查看对象的内置属性, 访问的是对象中的__dir__()方法
print(dir(tuple))  #查看元组的方法

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

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

相关文章

昇思25天学习打卡营第10天|使用静态图加速

昇思25天学习打卡营第10天|使用静态图加速 前言使用静态图加速背景介绍动态图模式静态图模式 静态图模式的使用场景静态图模式开启方式基于装饰器的开启方式基于context的开启方式 静态图的语法约束JitConfig配置选项静态图高级编程技巧 个人任务打卡&#xff08;读者请忽略&am…

UE4_材质_水体的反射与折射制作_Ben教程

在这个教程中&#xff0c;将制作水的反射和折射&#xff0c;上个教程&#xff0c;我们主要讲了制作水涟漪&#xff08;水面波纹&#xff09;和水滴法线混合&#xff0c;水深计算&#xff0c;我们首先要谈的是反射和产生折射的问题。我们将所有从干扰从场景中分离出去&#xff0…

英伟达(NVIDIA)数据中心GPU介绍

英伟达&#xff08;NVIDIA&#xff09;数据中心GPU按性能由高到低排行&#xff1a; 1. NVIDIA H100 架构&#xff1a;Hopper 核心数量&#xff1a;18352 CUDA Cores, 1456 Tensor Cores 显存&#xff1a;80 GB HBM3 峰值性能&#xff1a; 单精度&#xff08;FP32&#xff09…

一个动画形式的分形树

要在Python中使用matplotlib来创建并展示一个动画形式的分形树&#xff08;例如&#xff0c;基于递归的L系统生成的树&#xff09;&#xff0c;我们需要结合使用matplotlib的动画功能以及递归函数来生成树的形状。下面是一个简单的示例&#xff0c;展示如何使用matplotlib和Fun…

Fish Shell 中创建一个自定义函数来简化命令并复制输出到剪贴板

在 Fish Shell 中创建一个自定义函数来简化命令并复制输出到剪贴板是一个非常实用的技巧。如果你想让这个函数更通用&#xff0c;不仅仅局限于 tree 命令&#xff0c;你可以修改函数定义&#xff0c;使其接受任意命令作为参数。下面是如何创建一个更通用的函数&#xff0c;你可…

Ubuntu + SSH密钥连接服务器

1. 下载VSCode 下载链接 cd到下载文件夹后&#xff0c;使用命令安装&#xff0c;把xxx复制为文件名 sudo dpkg -i xxx.deb2. 为VSCode换皮肤 3. 下载SSH插件 4. 配置SSH 把密钥key文件放在/home/your_user_name/.ssh/里面&#xff0c;然后在/home/your_user_name/.ssh/confi…

【雷丰阳-谷粒商城 】【分布式高级篇-微服务架构篇】【18】认证服务02—微博社交登录

持续学习&持续更新中… 守破离 【雷丰阳-谷粒商城 】【分布式高级篇-微服务架构篇】【18】认证服务02—微博社交登录 微博社交登录图示原理前置准备实现流程完整代码 参考 微博社交登录 OAuth&#xff1a; OAuth&#xff08;开放授权&#xff09;是一个开放标准&#xff0…

Flutter详细使用socketIo实现实时通讯

文章目录 1. NodeJS2. SocketIo3. 服务端实现3.1 Express 4 Flutter总结 1. NodeJS 首先使用Node创建一个服务端&#xff0c;让Node来对所有接受到的数据进行一个获取和存储已经转发。通过在Node中编写接口来对数据进行一个具体的操作。不懂接口可以查看这篇文章。[接口](https…

如何正确面对GPT-5技术突破

随着人工智能技术的快速发展&#xff0c;预训练语言模型在自然语言处理领域取得了显著的成果。其中&#xff0c;GPT系列模型作为代表之一&#xff0c;受到了广泛关注。2023年&#xff0c;GPT-5模型的发布引起了业界的热烈讨论。本文将从以下几个方面分析GPT-5的发布及其对人工智…

Spring Boot2.x教程:(四)Spring Boot2.6及之后版本整合Knife4j的问题

Spring Boot2.6及之后版本整合Knife4j的问题 1、概述2、问题出现原因及解决办法3、拓展3.1、为什么发生这种变化 4、总结 大家好&#xff0c;我是欧阳方超&#xff0c;可以扫描下方二维码关注我的公众号“欧阳方超”&#xff0c;后续内容将在公众号首发。 1、概述 今天在2.7…

java-迭代器

## Java中的迭代器 ### 1. 介绍 迭代器&#xff08;Iterator&#xff09;是Java集合框架中一个重要的接口&#xff0c;用于遍历集合中的元素。迭代器提供了一种通用的方法来访问集合中的每个元素&#xff0c;而不需要了解集合的底层实现。Java中的迭代器支持集合的顺序遍历&a…

文本生成模型API比拼!KimiGPT 和 GLM-4 哪个更适合你?

在当今信息时代&#xff0c;人工智能&#xff08;AI&#xff09;技术的飞速发展正以前所未有的速度和深度改变着我们的生活和工作方式。随着大数据、计算能力和算法的不断提升&#xff0c;各类大模型的涌现使得AI的应用领域日益广泛&#xff0c;从自然语言处理到图像识别&#…

标准卷积的初始化和详细计算步骤,在代码中哪一步开始更新卷积核(权重)

标准卷积的初始化和详细计算步骤&#xff0c;在代码中哪一步开始更新卷积核&#xff08;权重&#xff09; flyfish 卷积 - 感受野&#xff08;Receptive Field&#xff09; 在卷积神经网络&#xff08;CNN&#xff09;中为什么可以使用多个较小的卷积核替代一个较大的卷积核&…

互联网盲盒小程序的市场发展前景如何?

近几年来&#xff0c;盲盒成为了大众热衷的消费市场。盲盒是一个具有随机性和惊喜感&#xff0c;它能够激发消费者的好奇心&#xff0c;在拆盲盒的过程中给消费者带来巨大的愉悦感&#xff0c;在各种的吸引力下&#xff0c;消费者也愿意为各类盲盒买单。如今&#xff0c;随着盲…

VSCode里python代码不扩展/级联了的解决办法

如图 解决办法&#xff1a;重新下载新的扩展工具 步骤如下 1、在左边工具栏打开Extensions 2、搜索框输入python&#xff0c;选择别的扩展工具&#xff0c;点击Install - 3在扩展工具所在的目录下&#xff0c;新建一个文件&#xff0c;就可以用了

iis部署前后端分离项目(React前端,Node.js后端)

iis虽然已经有点过时&#xff0c;但不少用户还在用&#xff0c;故总结一下。 1. 安装iis 如果电脑没有自带iis管理器&#xff0c;打开控制面板->程序->启用或关闭Windows功能&#xff0c;勾选iis安装即可 2. 部署前端项目 打开iis&#xff0c;添加网站&#xff0c;物理…

Docker加速器配置指南:提升镜像下载速度的秘诀 加速安装Mysql Redis ES

在安装 Docker 镜像时&#xff0c;由于官方镜像下载速度较慢&#xff0c;我们可以使用阿里云的镜像加速器来提升下载速度。 使用阿里云镜像加速器 首先&#xff0c;找到并配置阿里云的镜像加速器。安装教程如下&#xff1a; 登录阿里云&#xff0c;进入容器镜像服务。直达链…

05 docker 镜像

目录 1. 镜像 2. 联合文件系统 3. docker镜像加载原理 4. 镜像分层 镜像分层的优势 5. 容器层 1. 镜像 镜像是一种轻量级、可执行的独立软件包&#xff0c;它包含运行某个软件所需的所有内容&#xff0c;我们把应用程序和配置依赖打包好行程一个可交付的运行环境&#xf…

AMEYA360代理:海凌科60G客流量统计雷达模块 4T4R出入口绊数计数

数字化时代&#xff0c;不管是大型商城还是各种连锁店&#xff0c;客流统计分析都可以帮助企业更加精准地了解顾客需求和消费行为。 海凌科推出一款专用于客流量统计的60G雷达模块&#xff0c;4T4R&#xff0c;可以实时进行固定范围内的人体运动轨迹检测&#xff0c;根据人体的…

聊一聊领域驱动和贫血

写在前面 前段时间跟领导讨论技术债概念时不可避免地提到了代码的质量&#xff0c;而影响代码质量的因素向来都不是单一的&#xff0c;诸如项目因素、管理因素、技术选型、人员素质等等&#xff0c;因为是技术债务&#xff0c;自然就从技术角度来分析&#xff0c;单纯从技术角…