python学习-基础1

admin2024-07-03  10

一.简介

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))  #查看元组的方法

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明原文出处。如若内容造成侵权/违法违规/事实不符,请联系SD编程学习网:675289112@qq.com进行投诉反馈,一经查实,立即删除!