python基础知识
python基础数据类型
基础数据类型
基础数据类型的分类:
python3中有六个标准的数据类型
- Number(数字)
- String(字符串)
- List(列表)
- Tuple(元组)
- Sets(集合)
- Dictionary(字典)
Python3的六个标准数据类型中:
- 不可变数据类型(四个):Number、String、Tuple、Sets
- 可变数据类型(两个):List、Dictionary
number数据类型
概念::
Python3支持int、float、bool、complex(复数)
在Python3里,只有一种整数类型int,表示为长整型,没有python2中的Long。
内置的type()函数可以用来查询变量所指的对象类型
>>> a, b, c, d = 20, 5.5, True, 4+3j >>> print(type(a), type(b), type(c), type(d)) <class 'int'> <class 'float'> <class 'bool'> <class 'complex'>
注意:
- 在 Python2 中是没有布尔型的,它用数字 0 表示 False,用 1 表示 True。到 Python3 中,把 True 和 False 定义成关键字了,但它们的值还是 1 和 0,它们可以和数字相加。
- Python可以同时为多个变量赋值,如a,b = 1,2
- 一个变量可以通过赋值指向不通类型的对象
- 数值的除法(/)总是返回一个浮点数,要获取证书使用//操作符。
- 在混合计算时,Python会把整型转换成浮点数
- Python还支持复数,复数可以用a+bj,或者complex(a,b)表示,a和b都是浮点数
string数据类型
概念:
Python中的字符串是以单引号(’)或者双引号(“)引起来的
1,截取字符串格式为:变量[头下标:尾下标]
#!/usr/bin/python3 str = 'Yehewudi' print (str) # 输出字符串 print (str[0:-1]) # 输出第一个到倒数第二个的所有字符 print (str[0]) # 输出字符串第一个字符 print (str[2:5]) # 输出从第三个开始到第五个的字符 print (str[2:]) # 输出从第三个开始的后的所有字符 print (str * 2) # 输出字符串两次 print (str + "TEST") # 连接字符串
Python使用反斜杠(\)转义特殊字符,如果你不想让反斜杠发生转义,可以在字符串前面添加一个r,表示原始字符
>>> print('Ye\he') Ye he >>> print(r'Ye\he') Ye\he >>>
另外,反斜杠(\)可以作为续行符,表示下一行是上一行的延续。也可以使用"""..."""或者'''...'''跨越多行
字符串常用用法
count 通即字符串里某个字符出现的次数,支持切片
语法:str.count(sub, start=0, end=len(string))
a="awawaw aaa ijoa" print(a.count("a" 3 -1)) 4
encode 指定编码格式字符串
语法:str.encode(encodeing='UTF-8',errors = 'strict')
-
encoding 要使用的编码
-
errors 设置不通错误的处理方案
find 判断字符串中是否包含自字符串,如果在返回索引值,如果不再返回-1支持切片
a="awawaw aaa ijoa" print(a.find("aaa")) 7
format 格式化输出
print("姓名:{name}, 年龄:{age}".format(name = "yehe", age = 17)) 姓名:耶喝,年龄:17
index 查找字符串是否包含子字符串,如果存在返回索引,不存在报错
a="asdf" print(a.index("s")) 1
isdigit 判断字符串是否只由数字组成,是返回True,否返回Flase
a="11" print(a.isdigit()) True True: Unicode数字,byte数字(单字节),全角数字(双字节),罗马数字
返回值为False: 汉字数字
返回值为Error: 无
isidentifier 判断字符串是否由字母开头,是返回True,否返回Flase
a="asd11" print(a.isidentifier()) True
islower 判断字符串是否由小写字母组成,是返回True,否返回Flase
a="asd" print(a.islower()) True
isupper 判断字符串中所有的字母是否都为大写,是返回True,否则返回Flase
a="ASDF" print(a.isupper()) True
isspace 判断字符串是否只由空格组成,是返回True,否则返回Flase
a=" \t " print(a.isspace()) True
isalpha 判断字符串是否只由字母组成,是返回True,否则返回Flase
a="asdqweq" print(a.isalpha()) True
isalnum 判断字符串是否由字母和数字组成,是返回True,否则返回Flase
a="asdqweq1234" print(a.isalnum()) True
join 将序列中的元素以指定的字符连接生成一个新的字符串
a="-" print(a.join("asd")) a-s-d
lower 将字符串中所有大写字符转为小写
a="AAA" print(a.lower()) aaa
replace 将字符串中的字旧符替换成新字符,替换不超过max次
a="My name is yehe" print(a.replace("yehe", "daige")) My name is daige
split 通过指定分隔符对字符串进行分隔,已分割后的字符串为元素组成列表
语法:str.split(str="", num=string.count(str)).
-
str 分隔符,默认为空格
-
num 分隔次数
a="asd qwe zxc" print(a.split()) ['asd', 'qwe', 'zxc']
upper 将字符串中的小写字母转为大写字母
a="aaa" print(a.upper()) AAA
字符串不常用的用法
capitalize 将字符串的第一个字母变成大写,其他字母变小写
a="awawaw AAA ijoa" print(a.capitalize()) Awawaw aaa ijoa
casefold与lower相似
两者的区别是:lower() 方法只对ASCII编码,也就是‘A-Z’有效,对于其他语言(非汉语或英文)中把大写转换为小写的情况只能用 casefold() 方法
center 返回一个原字符串居中,并使用空格填充至长度 width 的新字符串。默认填充字符为空格
语法:str.center(width[, fillchar])
-
width 字符串的总宽度
- fillchar 填充字符
a="yehe" a.center(20, '*') ********yehe********
expandtabs 将字符串中的tab符号('\t')转为空格,tab为8个空格
endswith 判断字符串自否以指定字符结尾,是返回True,否则返回False,支持切片
a="yehe" a.endswith("he") True
format_map(不清楚)
isnumeric 判断字符串是否只由数字组成,是返回True,否返回Flase
a="123" print(a.isnumeric()) True True: Unicode数字,全角数字(双字节),罗马数字,汉字数字
返回值为False: 无
返回值为Error: byte数字(单字节)
isdecimal 判断字符串是否只包含十进制字符返回True,否则返回False
a="123" print(a.isdecimal()) True True: Unicode数字,,全角数字(双字节)
False: 罗马数字,汉字数字
Error: byte数字(单字节)
isprintable 判断字符串中所有字符是否都属于可打印字符
a="123\t" print(a.isprintable()) False
istitle 判断字符串中所有的单词首字母为大写,其他字母为小写,是返回True,否则返回Flase
a="This Is A Yehe!" print(a.istitle()) True
ljust 返回一个原字符串左对齐,并使用空格填充至指定长度的新字符串
lstrip 截掉字符串左边的空格或指定字符
maketrans ????
partition 根据指定的分隔符讲字符串进行分隔
a="yeheayehe!" print(a.partition("a")) ("yehe", "a", "yehe!")
rsplit 通过指定分隔符对字符串进行切片,类似于 split() 方法,只不过是从字符串最后面开始分割。
rfind 返回字符串最后一次出现的位置(从右向左查询),如果没有匹配项则返回-1
rindex 返回子字符串 str 在字符串中最后出现的位置,如果没有匹配的字符串会报异常,你可以指定可选参数
rjust 返回一个原字符串右对齐,并使用空格填充至长度 width 的新字符串。如果指定的长度小于字符串的长度则返回原字符串
rpartition 与partition类似,从后往前。
rstrip 删除 string 字符串末尾的指定字符(默认为空格).
startswith 用于检查字符串是否是以指定子字符串开头,如果是则返回 True,否则返回 False,支持切片
splitlines 按照行('\r', '\r\n', \n')分隔,返回一个包含各行作为元素的列表
swapcase 对字符串的大小写字母进行转换
title 返回"标题化"的字符串,就是说所有单词都是以大写开始,其余字母均为小写
translate 根据参数table给出的表(包含 256 个字符)转换字符串的字符, 要过滤掉的字符放到 del 参数中
zfill 返回指定长度的字符串,原字符串右对齐,前面填充0
注意:
- Python没有单独的字符类型,一个字符就是长度为1的字符串
- 反斜杠可以用来转义,使用r可以让反斜杠不发生转义
- 字符串可以用+运算符进行字符串的拼接操作
- Python中的字符串有两种索引方式,从左往右以0开始,从右往左以-1开始
- Python中的字符串不能改变
list列表
概念:
List是Python中使用最频繁的数据类型。
列表可以完成大多数集合类的数据结构实现。列表中元素的类型不相同,它支持数字,字符串甚至可以包含列表(嵌套)。
列表是写在方括号“[]”之间、用逗号分隔的元素列表。
和字符串一样,列表同样可以被索引和截取,列表被截取后返回一个包含所需元素的新列表。
列表的截取格式为:变量[头下标:尾下标]
#!/usr/bin/python3 list = [ 'abcd', 786 , 2.23, 'yehe', 70.2 ] tinylist = [123, 'yehe'] print (list) # 输出完整列表 print (list[0]) # 输出列表第一个元素 print (list[1:3]) # 从第二个开始输出到第三个元素 print (list[2:]) # 输出从第三个元素开始的所有元素 print (tinylist * 2) # 输出两次列表 print (list + tinylist) # 连接列表
常用用法:
append 在列表末尾添加新的元素
a = ["yehe", "test", 123] a.append("qweqwe") print(a) ["yehe", "test", 123, "qweqwe"]
count 用于统计某个元素在列表中出现的次数。
a = ["yehe", "test", 123, 123] print(a.count(123)) 2
clear 清空列表
extend 用于在列表末尾一次性追加另一个序列中的多个值
a = ["yehe", "test", 123] b = ["qwe", "asd"] a.extend(b) print(a) ["yehe", "test", 123, "qwe", "asd"]
index 从列表中找出某个值第一个匹配项的索引位置
a = ["yehe", "test", 123] print(a.index("test")) 1
insert 将指定对象插入列表的指定位置
a = ["yehe", "test", 123] a.insert(1, "asd") print(a) ["yehe", "asd", "test", 123]
pop 删除列表中的一个元素(默认为最后一个),并且返回值为该元素,没有则会报错
a = ["yehe", "test", 123] a.pop(1) print(a) ["yehe", 123]
remove 删除列表中某个元素的第一个匹配项,没有则会报错
a = ["yehe", 123, "test", 123] a.remove(123) print(a) ["yehe", 123]
sort 对列表进行排序
a = [3, 2, 4, 1] a.sort() print(a) [1, 2, 3, 4]
不常用用法:
reverse 用于反向列表中元素
a = ["yehe", "test", 123] a.reverse() print(a) [123, "test", "yehe"]
注意:
- List卸载方括号之间,元素用逗号分隔
- 和字符串一样,list可以被索引和切片
- List可以用+操作符进行拼接
- List中的元素是可以改变的
tuple元组
概念:
元组与列表类似,不用之处在于元组不能修改。元组卸载小括号里“()”,元素之间用逗号分隔
用法:
与列表类似,只是不能修改
只有count与index函数
注意:
- 和字符串一样,元组可以被索引和切片
- 元组也可以被索引和切片,方法一样
- 注意构造包含0或1个元素的元组的特殊语法规则
- 元组也可以使用+操作符进行拼接
dictionary字典
概念:
字典是Python中另一个非常游泳的内置数据类型。
列表是有序的对象集合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过索引存取。
字典是一种映射类型,字典用大括号“{}”表示,它是一个无序的键(key):值(value)对集合。
键(key)必须使用不可变类型。
在同一个字典中,键(key)必须是唯一的。
#!/usr/bin/python3 dict = {} dict['one'] = "1" dict[2] = "2" testdict = {'name': 'yehe','code':1, 'site': 'www.qqq.com'} print (dict['one']) # 输出键为 'one' 的值 print (dict[2]) # 输出键为 2 的值 print (testdict) # 输出完整的字典 print (testdict.keys()) # 输出所有键 print (testdict.values()) # 输出所有值
用法:
clear 删除字典内所有元素
a = {"name": "yehe", "age": 18} a.clear print(a)
fromkeys 创建一个新字典,以序列seq中元素做字典的键,value为字典所有键对应的初始值
a = {} b = ["name", "age", "test"] print(a.fromkeys(b, 10)) {'name': 10, 'age': 10, 'test': 10}
get 函数返回指定键的值,如果值不在字典中返回默认值
a = {"name": "yehe", "age": 18} print(a.get("name")) yehe
items 以列表返回可遍历的(键, 值) 元组数组(列表转元组)
a = {"name": "yehe", "age": 18} b = a.items() print(b) dict_items([('name', 'yehe'), ('age', 18)])
keys 已列表的形式返回一个字典所有的键
pop 删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值
a = {"name": "yehe", "age": 18} a.pop("name") print(a) {'age': 18}
popitem 随机返回并删除字典中的一对键和值(一般删除末尾对),如果字典为空则报错
setdefault 和get()方法类似, 如果键不存在于字典中,将会添加键并将值设为默认值
a = {"name": "yehe", "age": 18} print(a.setdefault("test")) print(a) {'name': 'yehe', 'age': 18, 'test': None}
update 把字典dict2的键/值对更新到dict里
a1 = {"name": "yehe", "age": 18} a2 = {"hobby":"women"} a1.update(a2) print(a1) {'name': 'yehe', 'age': 18, 'hobby': 'women'}
例子
values 已列表的形式返回字典中的所有值
注意:
- 字典是一种映射类型,它的元素是键值对。
- 字典的关键字必须为不可变类型,且不能重复。
- 创建空字典使用{}。
sets集合(不重要)
概念:
集合是一个无序不重复元素的序列。
基本功能是进行成员关系测试和删除重复元素。
可以使用大括号{ }或者set()函数创建集合,但是创建一个空集合必须用set()
创建格式
parame = {value01,value02,...}
或者
set(value)
用法:
a = set('abracadabra')
b = set('alacazam')
1,差集
print(a - b)
2,并集
print(a | b)
3,交集
print(a & b)
4,反交集
print(a ^ b)
5,增
a.add('666') 增加一个元素
a.update('abc') 迭代增加
6,删
a.remove 删除一个元素
a.pop 随机删除一个元素
a.clear 清空集合
del a 删除集合
基础数据类型的补充
1,python数据类型的转换
函数 | 描述 |
int(x [,base]) | 将x转换为一个整数 |
float(x) | 将x转换到一个浮点数 |
complex(real [,imag]) | 创建一个复数 |
str(x) | 将对象 x 转换为字符串 |
repr(x) | 将对象 x 转换为表达式字符串 |
eval(str) | 用来计算在字符串中的有效Python表达式,并返回一个对象 |
tuple(s) | 将序列 s 转换为一个元组 |
list(s) | 将序列s转换为一个列表 |
set(s) | 转换为可变集合 |
dict(d) | 创建一个字典。d 必须是一个序列 (key,value)元组 |
frozenset(s) | 转换为不可变集合 |
chr(x) | 将一个整数转换为一个字符 |
ord(x) | 将一个字符转换为它的整数值 |
hex(x) | 将一个整数转换为一个十六进制字符串 |
oct(x) | 将一个整数转换为一个八进制字符串 |
编码: