Python基础
一、数值类型
整型(int):整型对应我们现实世界的整数,比如1,2,100
浮点型(float):浮点型对应现实世界的小数,比如100.12,会计数据一般都是保留两位小数的浮点型。
布尔值(bool):只有True和False两个值,可以理解布尔值是特殊的整型(True=1,False=0)。布尔值一般产生于成员运算符、比较运算符、逻辑运算符。
复数类型 :科学计数法,例如1+2j
二、Python支持的运算符
1、算术运算符
主要有如下:+(加) -(减) *(乘) /(除) %(除余) **(幂) //(除整)
2、赋值运算符
在算数运算符的后面加上等号,就是赋值运算符了。
= += -= *= /= %= **= //=
赋值运算符的意思是边计算边赋值,比如a+=1等效于a=a+1,左边的新值=左边的原始值+右边
3、比较运算符
跟数学里的>(大于号)、<(小于号)类似,Python再多拓展了几种比较运算符。
==(比较是否相等)!=(是否不相等) >(是否大于)<(是否小于)>=(是否大于等于)<=(是否小于等于)
4、逻辑运算符
跟语文中的“并且”和“或者”有相似的含义,逻辑运算符有三种:and(与) or(或) not(非)
5、成员运算符
成员运算符用来判断某个成员是否在一个序列里面,返回值是True或False:
in(在序列里) not in (不在序列里)
6、身份运算符
身份运算符用来判断两个标识符是否指向同一个对象,返回值是True或False:is(是同一个对象) is not (不是同一个对象)
举个例子:a=10 b=20 c=a a和b不是同一个对象,a和c是同一个对象。
三、序列类型
1、字符串及常用操作
a='abcdef'
字符串索引(适用于列表)
变量[头下标:尾下标]
索引值以 0 为开始值,-1 为从末尾的开始位置。
注意事项“”
- 反斜杠可以用来转义,使用r可以让反斜杠不发生转义。
- 字符串可以用+运算符连接在一起,用*运算符重复。
- Python中的字符串有两种索引方式,从左往右以0开始,从右往左以-1开始。
- Python中的字符串不能改变。
字符串切片
1、没有步长的简单切片
语法格式 S[start:stop] (start表示的是字符串要截取的开始下标,stop 表示终止的字符串结束的前一个位置。)
>>>s = 'hello world'
>>>s[0], s[-2]
('h', 'l')
>>>s[1:3], s[1:], s[:-1]
('el', 'ello world', 'hello worl')
>>>
2.有步长的切片方式
语法格式:S[start:stop:stride] (start表示的是字符串要截取的开始下标,stop 表示终止的字符串结束的前一个位置,stride表示的是间隔的取出字符串。)
>>>s = 'abcdefghijklmnop'
>>>s[1:10:2] #从下标1-9的字符串中每2个字符取一个
'bdfhj'
>>>s[::2]
'acegikmo'
>>>s[::-1] #逆向
'ponmlkjihgfedcba'
>>>s[::-2] #逆向每两个字符取一个
'pnljhfdb'
常见字符串操作函数
count(str, start= 0,end=len(string)): 统计字符串里某个字符出现的次数。可选参数为在字符串搜索的开始与结束位置。
- sub – 搜索的子字符串
- start – 字符串开始搜索的位置。默认为第一个字符,第一个字符索引值为0。
- end --字符串中结束搜索的位置。字符中第一个字符的索引为 0。默认为字符串的最后一个位置。
返回值为子字符串在字符串中出现的次数。
>>> a='dsasdfsfss'
>>> a.count('s')
5
>>> a.count('s',1,4)
2
index(str, beg=0, end=len(string)): 索引子字符串str在字符串中的位置,若不在则返回一个错误。参数同上。
>>> a.index('a')
2
>>> a.index('v')
Traceback (most recent call last):
File "<pyshell#4>", line 1, in <module>
a.index('v')
ValueError: substring not found
find(str, beg=0, end=len(string)): 检测字符串中是否包含子字符串 str。如果包含子字符串返回开始的索引值,否则返回-1。参数同上。
>>> a.find('f')
5
>>> a.find('q')
-1
isdigit(): 判断是否都为数字。返回True后False。
isalpha(): 判断是否都为字符串。返回True后False。
startwith(str): 判断是否以str开头的。返回True后False。
endswith(str): 判断是否以str结尾的。返回True后False。
islower(): 判断字符是否都是小写。返回True后False。
isupper(): 判断字符是否都是大写。返回True后False。
lower(): 将字符串内的字符都转换为小写。
upper(): 将字符串内的字符都转换为大写。
str.strip(): 删除字符串两边的指定字符,括号的写入指定字符,默认为空格
str.lstrip(): 删除字符串左边的指定字符,括号的写入指定字符,默认空格
str.rstrip(): 删除字符串右边的指定字符,括号的写入指定字符,默认空格
>>> a=' hello '
>>> b=a.strip()
>>> print(b)
hello
>>> a=' hello '
>>> b=a.lstrip()
>>> print(b)
hello #右边空格可能看的不是很明显
>>> a=' hello '
>>> b=a.rstrip()
>>> print(b)
hello
capitalize(): 将字符串的收个字母大写。
title(): 将字符串的每个单词的首字母大写。
split(str="", num=string.count(str)): 通过指定分隔符对字符串进行切片,如果参数 num 有指定值,则分隔 num+1 个子字符串。
- str – 分隔符,默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等。
- num – 分割次数。默认为 -1, 即分隔所有。
返回分割后的字符串列表。
>>> a='a,r,f,g,c,h,'
>>> a.split(',')
['a', 'r', 'f', 'g', 'c', 'h', '']
replace(old, new[, max]): 把字符串中的 old(旧字符串) 替换成 new(新字符串),如果指定第三个参数max,则替换不超过 max 次。
str.join(sequence): 用于将序列中的元素以指定的字符连接生成一个新的字符串。sequence – 要连接的元素序列。
>>> ' '.join(a) #将a中的字符串用空格连接组成一个新的字符串。
'a , r , f , g , c , h ,'
format(): 字符串格式化函数。
字符串转义列表如下:
| 转义符 | 功能 |
|---|---|
| \ | Backslash () 反斜杠 |
| ’ | Single quote (‘) 单引号 |
| " | Double quote (”) 双引号 |
| \a | ASCII Bell (BEL) 响铃符 |
| \b | ASCII Backspace (BS) 退格符 |
| \f | ASCII Formfeed (FF) 进纸符 |
| \n | ASCII Linefeed (LF) 换行符 |
| \N{name} | Unicode 数据库中的字符名,其中 name 就是它的名字(Unicode only) |
| \rASCII | Carriage Return (CR) 回车符 |
| \tASCII | Horizontal Tab (TAB) 水平制表符 |
| \uxxxx | 值为 16 位十六进制值 xxxx 的字符(Unicode only) |
| \Uxxxxxxxx | 值为 32 位十六进制值 xxxx 的字符(Unicode only) |
| \v | ASCII Vertical Tab (VT) 垂直制表符 |
| \ooo | 值为八进制值 ooo 的字符 |
| \xhh | 值为十六进制数 hh 的字符 |
2、元组
Python的元组与列表类似,不同之处在于元组的元素不能修改。
元组使用小括号,列表使用方括号。
元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可。
元组中只包含一个元素时,需要在元素后面添加逗号
元组中的元素值是不允许修改的,但我们可以对元组进行连接组合。
3、列表
序列是Python中最基本的数据结构。序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推。
Python有6个序列的内置类型,但最常见的是列表和元组。
序列都可以进行的操作包括索引,切片,加,乘,检查成员。
此外,Python已经内置确定序列的长度以及确定最大和最小的元素的方法。
列表是最常用的Python数据类型,它可以作为一个方括号内的逗号分隔值出现。
列表的数据项不需要具有相同的类型
列表的常用函数如下:
1、增
append(obj):在列表末尾添加新的对象
>>> a=[1,4,'a']
>>> a.append('b')
>>> a
[1, 4, 'a', 'b']
insert(index, obj):将对象obj插入列表的指定位置index(根据索引值进行插入)
>>> a.insert(0,'2')
>>> a
['2', 1, 4, 'a', 'b']
extend(seq):在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)
>>> a.extend((1,2)) #列表与元组的输出结果一致
>>> a
['2', 1, 4, 'a', 'b', 1, 2]
>>> a.extend({1:'1',2:'2'})
>>> a
['2', 1, 4, 'a', 'b', 1, 2, 1, 2]
2、删
pop([index=-1]):移除列表中的一个元素(默认最后一个元素),并且返回该元素的值
>>> a.pop(1) #删除列表a中的的数字1 从左往右依次删除
1
>>> a
['2', 4, 'a', 'b', 1, 2, 1, 2]
>>> a.pop() #默认删除列表a中的最后一个元素
2
>>> a
['2', 4, 'a', 'b', 1, 2, 1]
remove(obj):移除列表中某个值的第一个匹配项
>>> a.remove(1)
>>> a
['2', 4, 'a', 'b', 2, 1]
>>> a.remove(a[2])
>>> a
['2', 4, 'b', 2, 1]
clear():清空整个列表。
3、改 直接给指定元素赋值。
4、查
index(obj,[start,[stop]]):查询列表中obj的所在位置,start表示索引的起始位置,stop表示终止位置,遵循左闭右开的原则( []表示参数可有可无)。
>>> a = [1,3,4,2,4,1,43,0,4,1,4,1,41,2,32]
>>> a.index(1)
0
>>> a.index(1,2)
5
>>> a.index(1,2,10)
5
count():查询元素出现的次数。
5、其他方法
reverse():反向列表中元素。不会产生新的列表。
>>> a=[1,5,3,5,4,6]
>>> a.reverse()
>>> a
[6, 4, 5, 3, 5, 1]
sort(cmp=None, key=None, reverse=False):函数用于对原列表进行排序,如果指定参数,则使用比较函数指定的比较函数。只能对同类型排序。reverse表示排序规则,reverse = True 降序, reverse = False 升序(默认)。
>>> a.sort()
>>> a
[1, 3, 4, 5, 5, 6]
>>> a.sort(reverse=True)
>>> a
[6, 5, 5, 4, 3, 1]