Python基础总结

python的相关基本概念
1.基本类型

    整型(int):整数,如3、2、16。
    浮点型(float):带有小数的数字,如3.0、1.6。
    字符串:Python中用“ ’ ’ ”(单引号)或“ " " ”(双引号)括起来代表字符串,特殊字符用“\”转义。如果不希望字符被“\”转义,可以在字符串引号前加上一个“r”。例如:

1.print("c:\windows\name")   #在这里\n会被转义成换行符
2.#输出结果为
3.c:\windows
4.ame
5.print(r"c:\windows\name")
6.c:\windows\name

如果想表示多行字符串,可以用“ " " " …" " " ”三个双引号或三个单引号把字符串括起来。每行结尾会被自动加上一个换行符,如果不想输出换行符,可以在每行的最后加入“\”来避免输出换行符。

1.print("""
2.how are you?
3.I'm fine.
4.""")
5.how are you?
6.I'm fine.
7.print("""
8.how are you?\
9.I'm fine.
10.""")
11.how are you?I'm fine.

  

可以使用“+”来连接两个字符串,使用“*”来重复字符串。

    列表:可以支持存放不同类型的数据,但是通常情况下还是存放相同类型的数据。
    字面量:字符本身表面上的定义,例如数字10就是10。
    布尔类型:只有 F a l s e False False和 T r u e True True两个值。

2.运算符
算术运算符

算术运算符在数学表达式中,作用和在数学中的作用是一样的。
操作符    描述    示例
+    加法:运算符两侧的值相加    a+b
-    减法:左操作数减去右操作数    a-b
*    乘法:操作符两侧的值相乘    a*b
/    除法:左操作数除以右操作数    a/b
%    取模:左操作数除以右操作数的余数    a%b
**    幂:返回a的b次幂    a**b
//    取整除:返回商的整数部分    a//b
比较运算符

比较运算符是指对符号两边的变量进行比较的运算符。如果比较结果是正确的,返回 T r u e True True(真),否则返回 F a l s e False False(假)。
操作符    描述    示例
==    等于:比较两个对象是否相等    a==b
!=    不等于:比较两个对象是否不相等    a!=b
>    大于:返回a是否大于b    a>b
<    小于:返回a是否小于b    a<b
>=    大于等于:返回a是否大于等于b    a>=b
<=    小于等于:返回a是否小于等于b    a<=b
赋值运算符
操作符    描述    示例    展开形式
=    右边值赋给左边    a=100    a=100
+=    右边值加到左边    a+=10    a=a+10
-=    右边值减到左边    a-=10    a=a-10
*=    左边值乘以右边    a*=10    a=a*10
/=    左边值除以右边    a/=10    a=a/10
%=    左边值对右边做取模    a%=10    a=a%10
**=    左边值对右边进行幂运算    a**=10    a=a**10
//=    左边值整除右边    a//=10    a=a//10
位运算

对数字的二进制所有位数从低到高的运算。
操作符    描述    示例
&    按位与:如果相对应位都是1,则结果为1,否则为0    a&b
|    按位或:如果相对应位都是0,则结果为0,否则为1    a|b
^    按位异或:如果相对应位值相同,则结果为0,否则为1    a^b
~    按位取反:运算符翻转操作数里的每一位,即0变成1,1变成0    ~a
<<    按位左移运算符:左操作数按位左移右操作数指定的位数    a<<b
>>    按位右移运算符:左操作数按位右移右操作数指定的位数    a>>b

位运算是计算机的基础操作,但在实际应用中较少使用。
逻辑运算符

逻辑运算符广泛应用在逻辑判断上。
操作符    描述    示例
and    逻辑与:当且仅当两个操作数都为真,条件才为真    a and b
or    逻辑或:两个操作数任何一个位为真,条件则为真    a or b
not    逻辑非:用来反转操作数的逻辑状态,如果条件为 T r u e True True,则逻辑非运算符将得到 F a l s e False False    not a
关键字 i n in in和 i s is is

i n in in关键字用于判断是否包含在指定的序列中。 i s is is关键字用于判断两个标识符是不是引用同一个对象。

i s is is与==的区别: i s is is用于判断两个变量引用对象是否为同一个,==用于判断引用变量的值是否相等。
3.表达式

对于表达式的定义,我们可以简单理解为“任何有值的东西”。例如变量就是要给表达式,表达式 n u m = 123 num=123 num=123,表示的就是将123赋值给变量 n u m num num。

对于变量相同的情况,python支持连续赋值,虽然只有一行,但仍是由两个或两个以上的表达式组成。
运算符优先级

运算符不是完全遵循从左到右的顺序的。只有相同级别的运算符才遵循从左到右计算,否则优先级高的运算符优先计算。这就类似于数学计算中乘法优先于加减法。下标按优先级从高到低的顺序排列。
操作符    描述
**    指数
~ + -    按位翻转、一元加号和减号
* / % //    乘、除、取模、取整
+ -    加法、减法
>> <<    右移运算符和左移运算符
&    按位与
^ |    按位异或、按位或
<= <> >=    比较运算符
<> == !=    等于运算符
= %= /= //= -= += *= **=    赋值运算符
is    is关键字
in    in关键字
and or not    逻辑运算符
注释

相当于给代码做笔记。python中的注释必须以“#”开头。可以单独一行,也可以放在句尾。

通用序列操作

Python中有六种内置序列,其中有三种基本序列比较常见:列表、元组和字符串。

Python中的大部分序列都可以进行通用操作,包括索引、切片、相同类型序列相加、乘法、成员资格、长度、最大值和最小值。

下面以列表为例来做一些操作的说明。
索引

列表可以根据索引下标来获取元素的值,例如:

a=[1,2,3,4]
print(a[0])
结果为1
print(a[1])
结果为2

 

由上面代码可知,序列中的元素是从“0”开始从左往右编号的,元素通过编号进行访问。索引使用的语法就是:变量后面加中括号,在括号中输入所需元素的编号。

在Python中,索引不仅可以从左往右编号,还可以从右往左编号,也就是负数代表从右往左编号。需要注意的是,从右往左编号是从-1开始的。例如:

a[1,2,3,4]
print(a[-1])
#4
print(a[-2])
#3

  

切片

切片是为了获取序列中的一段元素。例如:

a=[1,2,3,4]
print(a[0:3])
#[1,2,3]

    1
    2
    3

从执行结果中我们可以看到,我们需要用一段元素两头的两个元素作为边界,并且用“ : ”隔开。这样看上去貌似是截取从下标为0的元素到下标为3的元素,但执行结果并不是这样。左边的元素包含在切片内,右边的元素不包含在元素内,就相当于是数学中的 [ a , b ) [a,b) [a,b)(左闭右开)。

同样地,切片也支持负数,也就是按从右往左的顺序的索引获取切片,例如:

a=[1,2,3,4]
print(a[-3:3])
#[2,3]

  

从右往左数,-3的位置就是2,从左往右数,3的位置就是4,于是得到 [ 2 , 4 ) [2,4) [2,4),也就是 [ 2 , 3 ] [2,3] [2,3]了。

同时,序列的下边可以超过真实的索引长度,例如:

a=[1,2,3,4]
print(a[3:10])
#4

 

所有序列的切片都有个默认的边界值,例如:

a=[1,2,3,4]
print(a[:2]
#[1,2]
print(a[2:]
#[3,4]
print(a[:]
#[1,2,3,4]

 

由此可知,省略左边边界元素,则默认为下标0;省略右边边界元素,则默认为到序列的最后(包括最后一个元素)。

在上面的例子中,我们通过切片都是获得连续的序列,也就是1,2,3这样连续的数字,那么我们如何获得非连续的序序列呢?对于这种情况,Python的切片提供了第三个参数:步长。默认情况下步长为1。例如:

a=[1,2,3,4,5,6,7]
print(a[0:4])
#[1,2,3,4]
print(a[0:4:1])
#[1,2,3,4]
print(a[0:4:2])
#[1,3]
print(a[0:4:3])
#[1,4]

当步长为负数时(步长不能为0),Python会从序列的尾部开始向左获取元素,直到第一个元素为止。整数的步长则是从序列的头部开始从左往右获取元素。
序列相加

用“+”进行连接。例如

a=[1,2,3,4]
print(a)
#[1,2,3,4]
a=[1,2,3,4]+[5,6,7]
print(a)
#[1,2,3,4,5,6,7]
print(a+[7,8,9])
#[1,2,3,4,5,6,7,8,9]

序列和序列相加后的结果还是相同类型的序列。注意:不同类型的序列是不能相加的。
序列重复

用“*”做乘法。例如:

a=[1,2]
print(a)
#[1,2]
a=[1,2]*2
print(a)
#[1,2,1,2]
print(a*2)
#[1,2,1,2,1,2,1,2]

   

成员资格

成员资格指判断一个元素是否包含在序列中,python中使用运算符“in”来判断。“in”运算符会判读左边的元素是否包含在右边的序列中,如果包含就返回 T r u e True True(真),如果不包含就返回 F a l s e False False(假)。例如:

print(3 in [1,2,3,4])
#True
print(5 in [1,2,3,4])
#False

 

注意:只有当序列中元素的类型和值都完全一致,才算是包含在序列中,比如数字“5”和字符串“ " 5 " ”就是两种不同的元素。
长度、最小值、最大值、求和

直接看下面代码:

a=[1,2,3,4]
print(len(a))
#4
print(min(a))
#1
print(max(a))
#4
print(sum(a))
#10

  

从执行结果可以看出, l e n len len函数可以获取序列的长度, m i n min min函数可以获取序列的最小值, m a x max max函数可以获取序列的最大值。需要注意的是, s u m sum sum函数求和的要求是序列的元素必须是 i n t int int,比如 s u m sum sum函数无法对字符串序列求和。
列表
列表更新

列表可以通过索引获取其中的单个元素,也可以通过索引更新其中的元素,使用方法就和变量赋值一样。例如:

a=[1,2,3,4]
print(a[2])
#3
a[2]="hello"
print(a)
#[1,2,'hello',4]

 

由执行结果可以看出,一个列表可以存储不同类型的数据,并且修改的新元素也不需要和原来的元素类型一致。需要注意的是:更新列表的索引必须是已存在的索引,不能对超出列表长度的索引更新元素。·
增加元素

a p p e n d append append
列表不能通过索引来添加元素,索引只能修改更新现有的元素。如果要想添加新元素,可以用 a p p e n d append append方法在列表的最后追加新元素。

a=[1,2,3,4]
a.append(5)
print(a)
#[1,2,3,4,5]
a.append([6])
print(a)
#[1,2,3,4,5,[6]]
a.append([7,8])
print(a)
#[1,2,3,4,5,[6],[7,8]]

  

e x t e n d extend extend
a p p e n d append append只能增加一个元素,如果要想追加多个元素,则用 e x t e n d extend extend,例如:

a=[1,2,3,4]
a.extend([5,6])
print(a)
#[1,2,3,4,5,6]
a.extend([7])
print(a)
#[1,2,3,4,5,6,7]
a,extend(8)
print(a)
#报错

   

i n s e r t insert insert
在列表中间插入用 i n s e r t insert insert,它需要传递两个参数,第一个参数为插入的位置,第二个参数表示插入的元素,它只能插入一个元素。例如:

a=[1,2,3,4]
a.insert(2,'a')
print(a)
#[1,2,'a',3,4]
a.insert(5,5)
print(a)
#[1,2,'a',3,4,5]
a.insert(6,[6])
print(a)
#[1,2,'a',3,4,5,[6]]
a.insert(7,[7,8])
print(a)
#[1,2,'a',3,4,5,[6],[7,8]]

   

删除元素

p o p pop pop
用于移除列表中指定的一个元素,默认是最后一个元素(默认是不带参数的意思),它的参数是元素的下标,并可以返回该元素的值。例如:

a=[1,2,3,4]
a.pop()
print(a)
#[1,2,3]
a.pop(1)
print(a)
#[1,3]
b=a.pop(0)    #用b接收返回值
print(a)
#[3]
print(b)
#1

  

r e m o v e remove remove
根据元素内容来对元素进行删除,如果有多个相同的元素,只会删除查找到的第一个元素,并且没有返回值。

a=[1,2,3,4,3]
a.remove(1)
print(a)
#[2,3,4,3]
a.remove(3)
print(a)
#[2,4,3]

   

d e l del del
用于删除指定的元素。

a=['A','B','C','D']
del a[1]
print(a)
#['A','C','D']

   

查找元素

i n d e x index index
它有返回值,返回的是元素的下标。如果元素不在列表中(有返回值的可以直接打印,也可以用一个变量来接收),会报错。例如

a=['A','B','C','D']
print(a.index('C'))
#2
b=a.index('D')
print(b)
#3
print(a.index('E'))
#ValueError: 'E' is not in list

   

其它操作

r e v e r s e reverse reverse
反转列表,和“ [ : : − 1 ] [::-1] [::−1]”相似,但是 r e v e r s e reverse reverse修改的是原来的列表,没有返回值。例如:

a=['A','B','C','D']
a.reverse()
print(a)
#['D','C','B','A']

   

c o u n t count count
用于统计某个元素在列表中出现的次数。例如:

a=[1,2,3,4,1,2,3,2]
print(a.count(1))
#2
print(a.count(2))
#3
print(a.count(3))
#2

  

s o r t sort sort
用于对列表进行排序,没有返回值。

a=[1,3,2,5,4]
a.sort()
print(a)
#[1,2,3,4,5]
print(a.sort())
#None

  

元组

元组和列表十分相似,但列表可以修改、删除,元组创建之后就不能修改,不能删除单个元素,但是可以删除整个元组。

定义:元组只是边界变成了“ ( ”、“ ) ”。例如:

a=(1,2,3,4)
print(a)
#(1,2,3,4)

   删元组

d e l del del
用这个删除整个元组,例如:

a=(1,2,3,4)
del a
print(a)
#NameError: name 'a' is not defined

  

其它操作

c o u n t count count
跟列表一样
i n d e x index index
跟列表一样
字典

字典的元素由键值对组成,键和值中间有冒号。整个字典用花括号“ { } ”括起来,空字典可以直接用“ { } ”表示。字典的键必须唯一,不能重复。例如:

a={
    'A':1,
    'B':2,
    'C':3,
    'D':4
}
print(a)
#{'A':1,'B':2,'C':3,'D':4}
b={}
print(b)
#{}

 

使用字典

查找
用键去查找值。

a={
    'A':1,
    'B':2,
    'C':3,
    'D':4,
}
print(a['A'])
#1

 

注意:查找的时候用的是“ [ ] ”。
若变量名后面接了函数等,都不能用“ [ ] ”,若只是变量名才可以用“ [ ] ”。

修改 值

a = {
    'A':1,
    'B':2,
    'C':3,
    'D':4,
}
a['B'] = 5
print(a)
#{'A':1,'B':5,'C':3,'D':4}
a['E'] = 6
print(a)
#{'A':1,'B':5,'C':3,'D':4,'E',6}

   

删除 值

a = {
    'A': 1,
    'B': 2,
    'C': 3,
    'D': 4,
}
del a['A']
print(a)
#{'B':2,'C':3,'D':4}

c l e a r clear clear
清空字典的所有元素,使其变成空字典。

a = {
    'A': 1,
    'B': 2,
    'C': 3,
    'D': 4,
    }
a.clear()
print(a)
#{}

c o p y copy copy
返回一个具有相同键值对的新字典

a = {
    'A': 1,
    'B': 2,
    'C': 3,
    'D': 4,
    }
b = a.copy()
print(b)
#{'A': 1, 'B': 2, 'C': 3, 'D': 4}
del b['A']
print(b)
#{'B': 2, 'C': 3, 'D': 4}
print(a)
#{'A': 1, 'B': 2, 'C': 3, 'D': 4}

 

对从 c o p y copy copy得到的字典做修改,不会影响到原字典。

f r o m k e y s fromkeys fromkeys
用于创建一个新字典,用序列中的元素作为字典的键,第一个参数为该序列名,第二个参数为字典所有参数对应的初始值,例如:

a = ['A','B','C']
b = dict.fromkeys(a)
print(b)
#{'A': None, 'B': None, 'C': None}
c = dict.fromkeys(a,1)
print(c)
#{'A': 1, 'B': 1, 'C': 1}

 

g e t get get
用于返回键对应的值

a = {
    'A' : 1,
    'B' : 2,
    'C' : 3,
    'D' : 4,
}
print(a.get('A'))
#1

 

k e y s 、 v a l u e s keys、values keys、values
前者返回包含全部键的一个列表,后者返回包含全部值的列表

a = {
    'A' : 1,
    'B' : 2,
    'C' : 3,
    'D' : 4,
}
print(a.keys())
#dict_keys(['A', 'B', 'C', 'D'])
print(a.values())
#dict_values([1, 2, 3, 4])

 

i t e m s items items
用于返回一个包含所有键值对的类似于 l i s t list list的一个结构。

a = {
    'A' : 1,
    'B' : 2,
    'C' : 3,
    'D' : 4,
}
print(a.items())
#dict_items([('A', 1), ('B', 2), ('C', 3), ('D', 4)])

集合

它与列表类似,唯一的区别就是它不含重复值,且用花括号“ { } ”括起来。
可用 s e t ( ) set() set()函数来定义集合。

a = set((1,2,3))
print(a)
#{1,2,3}
b = set([1,2,3])
print(b)
#{1,2,3}
c = set()
print(c)
#set()
d = {1,2,3}
print(d)
#{1,2,3}

 

s e t ( ) set() set()的括号里可以是其它的数据结构,但输出出来的都是花括号,也可以直接用括号定义。但空集合必须要用 s e t ( ) set() set()。

 i f if if判断

语句格式如下:

if 表达式:
    语句1
    语句2

   

注意❗️:“语句1”、“语句2”前有一个缩进(相当于4个空格)不能省略。 i f if if判断语句是根据它旁边表达式的真假来决定要不要执行下面的语句。也就是 i f if if右边表达式的值只有 T r u e True True或 F a l s e False False两种。

a = 1
b = 2
c = 0
if a < b:
    print("you are right!")
#you are right!
if a > b:
    print("you are wrong!")
#
if a:
    print("yes");
#yes
if c:
    print("no");
#

  

对于上面的代码,由于 a < b a < b a<b是正确的,所以它的值是 T r u e True True,执行该 i f if if判断下面的语句。而 a > b a > b a>b是错误的,所以它的值是 F a l s e False False,不会执行该 i f if if判断下面的语句。

此外还要说明一种情况👉:当表达式是一个空的数据结构时,它也是 F a l s e False False值,例如👇:

a = [ ]
b = ( )
c = { }
if a:
    print("yes")
#
if b:
    print("yes")
#
if c:
    print("yes")
#

❗️:上面的空列表、空元组和空字典都被判断为 F a l s e False False,但是只要这些数据结构中有一个元素,就会被判断为 T r u e True True。
e l s e else else语句

e l s e else else跟在 i f if if后,只要 i f if if的表达式判断为 F a l s e False False,就执行后面的 e l s e else else语句。❗️❗️❗️: e l s e else else不能单独出现,只能跟在 i f if if后。例如👇:

a = 1
b = 2
if a > b:
    print("a > b")
#
else:
    print("a < b")
#a < b

  

e l i f elif elif语句

单独一个 e l s e else else有时候也许不能满足要求,这时就可以用 e l i f elif elif, e l i f elif elif可以有多个。 e l i f elif elif和 e l s e else else都是 i f if if的可选项。且 e l i f elif elif也不能单独出现,只能跟在 i f if if后面,当既有 e l i f elif elif也有 e l s e else else时, e l s e else else要只能在最后,不能插到 e l i f elif elif前面去。例如👇:

a = 1
b = 2
if a > b:
    print("a > b")
#
elif a < b:
    print("a < b")
#a < b
else:
    print("a == b")
#

  

2. 循环
w h i l e while while循环

它的语法格式👇:

while 表达式:
    语句1
    语句2

 

它的意思就是只要表达式的值为 T r u e True True,就循环执行 w h i l e while while里面的语句。直到表达式的值为 F a l s e False False就退出循环。

a = 1;
while a <= 5:
    print(a)
    a += 1
#1
#2
#3
#4
#5

 

❗️:在使用循环的过程中,要避免死循环。什么是死循环❓死循环就是 w h i l e while while旁边的表达式一直为 T u r e Ture Ture,不会停止。
例如👇:

a = 1;
while a > 0:
    print(a)
    a += 1

  

上面的循环就是一个死循环,因为循环内 a a a一直在加1,而它本身又是大于0的,所以循环就结束不了,最终可能导致系统资源被耗尽。
f o r for for循环

语法👇:

for 变量 in 序列:
    语句

    1
    2

f o r for for循环跟 w h i l e while while循环有点不一样, w h i l e while while循环是判断通过表达式的是值否为 T r u e True True来选择是否执行其内的语句。而 f o r for for循环则是用 x x x去遍历序列中所有元素,遍历完后就结束循环,也就是说 f o r for for循环是规定了循环次数的。

for x in {1,2,3}:
    print(x + 1)
#2
#3
#4

 

也可以用 r a n g e range range函数来表示循环的次数。

for x in range(3):
    print(x)
#0
#1
#2
for x in range(3):
    print(1)
#1
#1
#1

  

r a n g e range range函数若只有一个参数,参数为元素的个数,默认从0开始。💨同时也可以有两个或三个参数。两个参数的情况就是一个开始位置到结束位置,但不包括结束位置。还有一个就是增长步进,默认为1。
b r e a k break break

其作用是立即退出循环体,直接结束循环,例如👇:

for x in range(4):
    if x == 2:
        break
    print(x)
#0
#1

  

c o n t i n u e continue continue

其作用是跳过当前循环而执行下一次循环,例如👇:

for x in range(1,6):
    if x == 3:
        continue
    print(x)
#1
#2
#4
#5

 

3. 其它
p a s s pass pass

在python中, p a s s pass pass是一个空语句,其作用是保持程序结构的完整性。 p a s s pass pass不做任何操作,一般用做占位语句,例如👇:

for x in range (1,4):
    if x > 2:
        pass
    print(x)
#1
#2
#3

   

可以看出来 p a s s pass pass语句没有任何影响。
循环语句中的 e l s e else else

e l s e else else与 w h i l e while while
当 w h i l e while while的条件表达式的值为 F a l s e False False时就会去执行 e l s e else else,例如👇:

x = 0
while x <= 2:
    print(x)
    x += 1
else:
    print("end")
#0
#1
#2
#end

 

❗️:如果循环中有 b r e a k break break则不会执行 e l s e else else,下同。

e l s e else else与 f o r for for

for x in range(3):
    print(x)
else:
    print(x)
#0
#1
#2
#2
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

韵晟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值