Python
BIF :Built-in functions(内建函数)
Python与大多数其他计算机语言的做法稍有不同,他并不是把值存储在变量中,而更像是把名字贴在值的上边。
在使用变量之前,必须要先对变量赋值
字符串的表示
表示字符串时,用单引号或者双引号将文本包围起来都可以。
如果字符串中需要出现单引号或双引号怎么办?
两种方法:1.使用转义符号(\)对字符串中的引号进行转义
例如:"let\'s go"; 即可将字符串设置为let's go\
原始字符串
反斜杠有时也会带来问题,当打印 >>>str ='C:\now'时,会将\n识别为换行符
解决办法:可以用反斜杠对自身进行转义: >>>str = 'C:\\now'
但如果对于一个字符串中有很多歌反斜杠,这个方法就显得有些麻烦了。
原始字符串的使用
原始字符串的使用非常简单,只需要在字符串前边加一个英文字母r即可:
例如:>>>str=r'C:\now'
长字符串
如果希望得到一个跨越多行的字符串,我们就需要使用到三重引号字符串:
使用"""或者''',将这个跨越多行的字符串包围,即可。
条件分支
if 条件:
条件为真执行的操作
else:
条件为假(False)执行的操作
Python中不使用大括号,而根据缩进来判断哪些代码段是要在一起执行的。
While循环
Python的while循环语法:
while 条件 :
条件为真时的操作
注意:条件书写时,没有括号
and, or操作符
and相当于其他语言中的&&
or相当于其他语言中的||
random模块
random模块里边有一个函数叫做 randint(), 会返回一个随机的整型数
secret = random.randint(1,10)//这句话的意思是生成一个1到10之间的随机数
Python的一些数据类型
整型
布尔类型:True是1,False是0
浮点型
e计法(科学计数法)
类型转换
int():将一个数转换为整型
str():将一个数转换为字符串类型
float():将一个数转换为浮点型
这三个函数分别将括号内的参数转换成int类型、字符串类型和浮点类型
如果是浮点数转换为整数,python会采取截断处理:将小数点后面的数抛弃,而不是采用四舍五入。
获取关于类型的信息
isinstance(),type()函数,获取数据的类型,Python官方文档更建议使用isinstance()
isinstance(a,str)
如果a是str类型,返回True,否则返回False
常用操作符
Python中可以写
a = b = c = d = 1
这个式子将a ,b , c , d 4个变量都赋值为1了。这是其他编程语言不允许的操作
也可以写
a<b<c,Python中的这个算式的意思是a<b and b<c。在其他的编程语言中,这样写不能达到这样的效果。
/ 是真正准确的除法符号,会得到一个准确的值而不是取整
// 是整除符号,得到一个整数
**是幂运算的操作符
3 ** 2的意思是3的2次方,幂运算符的左边是底数,右边是指数
幂操作符比其左侧的一元操作符优先级高,比其右侧的一元操作符优先级低
-3**2 ,结果为-9,先计算了3的2次方,再加了个负号
而 3 **-2,就会得到0.111111111111111,说明了幂操作符比左侧的一元操作符优先级高,比右侧的一元操作符优先级低。
分支和循环
elif 就是else if 的意思
条件表达式(三元操作符)
x=4
y=5
if x<y:
small = x
else:
small = y
这个例子可以改进为
small = x if x<y else y
assert(断言)
assert这个关键字我们称之为断言,当这个关键字后边的条件为假的时候,程序自动崩溃并抛出AssertionError的异常。例如: assert 3>4 程序就会报错
一般来说我们可以用他在 程序中置入检查点,当需要确保程序中的某个条件一定为真才能让程序正常工作的话,assert关键字就非常有用了。
while循环
while 条件:
循环体
for循环
语法:
for 目标 in 表达式:
循环体
会自动调用迭代器的next方法,就好像是java中的 for-each循环一样
len()函数返回参数的长度
print()函数没有规定参数的个数,不管你在函数中写多少个参数,他都能识别并输出出来
range()
语法:range([start,]stop[,step=1])
这个BIF有三个参数,其中用中括号括起来的两个参数是可选的
step=1表示第三个参数的值默认是1,这个参数表示每一次递增的值是多少
range这个BIF的作用是生成一个从start参数的值开始到stop参数的值结束的数字序列(不包括stop数 )
两个关键的语句break与continue
break:终止循环并跳出循环体
continue:跳过本轮循环的剩下操作,跳到下一轮循环
列表(一个打了激素的数组)
序列是Python中最基本的数据结构,序列中的每个元素都分配一个数字-它的位置(索引index)列表的索引从0开始。使用下标的索引可以来访问列表中的值
L=['Google','Runoob','Taobao']
Python 表达式 | 结果 | 描述 |
---|---|---|
L[2] | 'Taobao' | 读取第三个元素 |
L[-2] | 'Runoob' | 从右侧开始读取倒数第二个元素: count from the right |
L[1:] | ['Runoob', 'Taobao'] | 输出从第二个元素开始后的所有元素 |
可以对列表的数据进行修改更新(直接对对应索引的元素直接赋值即可),也可以使用append()方法来添加列表项(以后会讨论)
可以使用del语句来删除列表的元素
list = ['Google', 'Runoob', 1997, 2000] print ("原始列表 : ", list) del list[2] print ("删除第三个元素 : ", list)
向列表内添加元素:
append()方法
member.append(‘xiaodingding’)
会将xiaodingding添加到列表的尾部,每次只能有一个参数
extend()方法
member.extend(['竹林小溪','Crazy迷恋'])
extend方法是将一个列表添加到另一个列表的尾部,故他的参数是一个列表
insert()方法
这个方法有两个参数,第一个参数是要插入元素的位置,第二个参数是插入的元素
member.insert(1,'牡丹')
将牡丹插入到第二个索引处
从列表中获取元素
可以像数组一样,通过元素的索引值来获取元素值
从列表删除元素
remove(),参数为元素的名称,不需要知道这个元素在列表中的哪个位置
member.remove('怡静'),这样就将怡静从列表当中删除了
del
del member[1] 将member列表中的第二个元素进行删除了。
del member ,将member这整个列表删除掉
pop()
pop()方法从列表的尾部弹出一个元素返回,并从列表中删除这个元素
name = member.pop() 会将member列表中的最后一个元素赋值给name,并从列表中删除这个元素。
pop()方法在括号内还可以填上参数,参数为需要弹出的元素的索引值
例如 member.pop(1) 就将列表中的第二个元素弹出来了。
列表分片(Slice)
利用索引值,每次我们可以从列表获取一个元素,如果需要一次性获取多个元素,需要利用列表分片来实现。
member[1:3] 选出从第二个到四个元素的值,组成一个新的列表(左闭右开),新的列表是对原列表中部分元素的拷贝。
member[1:] 选出从第二个元素开始,到列表最后的元素的值
member[:3] 选出从第一个元素开始到第四个元素的值(不包括第四个元素)
member[:] 获得原列表的拷贝,在要复制一个和member一样的列表时,需要用到
member2 = member[:] 就得到了member2,一个内容和member2一样的列表。
如果使用member2=member ,则member2只是获得了member表示的列表的管理权,member2和member的操作会同时对同一个列表进行改变。
member2和member其实是在管理同一片内存,而member1将member列表的数据拷贝过来之后,储存到另外一片新的内存进行管理。
所以在需要进行拷贝的时候,最好使用分片的方式,不然可能会遇到一些意想不到的bug出现。
列表的一些常用操作符
·比较操作符
·逻辑操作符
·连接操作符
·重复操作符
·成员关系操作符
比较操作符
在两个列表进行比较大小时,从第一个元素开始依次比较,若不相同,则得出答案,若相同,则向后依次比较元素的大小。
逻辑操作符
还可以判断两个列表中的元素是否相等,利用== 即可进行判断,返回布尔值,若两个列表中的元素完全相等(包括元素的顺序),则返回True,否则返回False
连接操作符列表可以使用+运算符进行连接,和字符串的连接有相似性,也类似于extend()方法。但+运算符不能实现添加一个新元素的操作,例如 list1+'jiji' 程序会报错
重复操作符
*运算符进行重复操作
list1 * 3,得到一个将list1中的元素重复三遍的列表 list2 = list1*3
也可以使用 list1*=3,将list1重复三遍并又重新赋给list1
成员关系操作符
in 和 not in
123 in list1 如果123在列表list1中存在,返回True,否则返回False
'小鸡鸡' not in list 2
list5 = [123,['小鸡鸡',['小鸡']],456]
'小鸡鸡' in list5
返回False,不能直接对列表中嵌套的列表进行元素是否存在的验证
如果写为 '小鸡鸡' in list5[1]
则会返回True
列表类型的内置函数
count():返回参数在列表中出现的次数
list1.count)(123) 看123在list1中出现了多少次
index():返回参数在列表中的位置(索引值)
list1.index(123):会返回第一个123所在位置的索引值
list1.index(123,3,7):第二个参数和第三个参数分别代表从第4个位置开始到第8个位置结束,之间的123出现的索引位置。 3是start位置,7是stop位置。
reverse()方法:将整个列表进行翻转
list1.reverse()
sort()方法:用指定的方法对列表的元素进行排序,默认是从小到大进行排列
sort(func,key,reverse),前两个方法不用管,第三个方法默认值为False:表示从小到大进行排列,如果将其改成True的话,就会进行从大到小的排序了。
list1.sort(reverse=True)
元组:戴上了枷锁的列表
创建和访问一个元组
元组(tuple)和列表是近亲关系,所以元组和列表在实际使用上是非常相似的。创建元组时,一般是使用小括号
元组的访问,拷贝的操作与列表都是一样的
元组的元素是不能够被改变的
逗号在表示是元组中是很重要的,如果要创建一个只有一个元素的元组,要像下面这样创建:
temp =(1,) #这样就创建了一个只有1个元素1 的元组。如果没有加逗号,会认为temp是一个普通的整型变量
只要是创建时为一组以逗号隔开的数据,创建后的类型就为元组,不管有没有加上小括号。
如果要创建一个空元组,则在创建时,将变量声明为小括号()就可以了。
更新和删除一个元组
temp = ('小甲鱼','黑夜','迷途','小布丁') temp = temp[:2]+('怡静',)+temp[2:]
如果要在temp元组中插入一个新的元素'怡静',需要先将元组拆成两部分,使用拼接的方法将2部分和需要插入的元素进行组合起来,重新给temp元组。
注意:对于插入的元素而言,小括号和逗号缺一不可。
如果需要删除一个元素,也可以使用切片的方式,把不进行删除的元素进行拼接,然后重新赋值给temp,这样的话,没在片中的元素就相当于被删除了。
如果要删除整个元组,可以使用del的语句进行删除
元组相关的操作符
+: 连接操作符,+两边都必须是元组
*:重复操作符
in not in :成员操作符
< > = :关系操作符
and or :逻辑操作符
字符串及其内置方法
下表中带有中括号的字段代表这一项是可选的
capitalize() | 把字符串的第一个字符改为大写 |
---|---|
casefold() | 把整个字符串的所有字符改为小写 |
center(width) | 将字符串居中,并使用空格填充至长度 width 的新字符串 |
count(sub[, start[, end]]) | 返回 sub 在字符串里边出现的次数,start 和 end 参数表示范围,可选。 |
encode(encoding='utf-8', errors='strict') | 以 encoding 指定的编码格式对字符串进行编码。 |
endswith(sub[, start[, end]]) | 检查字符串是否以 sub 子字符串结束,如果是返回 True,否则返回 False。start 和 end 参数表示范围,可选。 |
expandtabs([tabsize=8]) | 把字符串中的 tab 符号(\t)转换为空格,如不指定参数,默认的空格数是 tabsize=8。 |
find(sub[, start[, end]]) | 检测 sub 是否包含在字符串中,如果有则返回索引值,否则返回 -1,start 和 end 参数表示范围,可选。 |
index(sub[, start[, end]]) | 跟 find 方法一样,不过如果 sub 不在 string 中会产生一个异常。 |
isalnum() | 如果字符串至少有一个字符并且所有字符都是字母或数字则返回 True,否则返回 False。 |
isalpha() | 如果字符串至少有一个字符并且所有字符都是字母则返回 True,否则返回 False。 |
isdecimal() | 如果字符串只包含十进制数字则返回 True,否则返回 False。 |
isdigit() | 如果字符串只包含数字则返回 True,否则返回 False。 |