鹧鸪菜的Python学习笔记
变量:
用标识符命名的存储单元的地址称为变量,变量是用来存储数据的,通过标识符可以获取变量的值,也可以对变量进行赋值。对变量赋值的意思是将值赋给变量,赋值完成后,变量所指向的存储单元存储了被赋的值,在Pyhton语言中赋值操作符为“=、+=、-=、*=、/=、%=、**=、//=”。
变量声明
当程序使用变量存储数据时,必须要先声明变量,然后才能使用。声明变量的语法如下:
identifier [ = value] ;
其中identifier是标识符,也是变量名称。value为变量的值,该项为可选项,可以在变量声明时给变量赋值,也可以不赋值。声明变量时,不需要声明数据类型,Python会自动选择数据类型进行匹配。identifier只能包含字母、数字、下划线,可以下划线和字母开头,但是不能以数字开头,不能包含空格,也不要将python关键字和函数名作为变量名(这一点与C基本一致)
附:Python中的保留字
and | exec | not |
---|---|---|
assert | finally | or |
break | for | pass |
class | from | |
continue | global | raise |
def | if | return |
del | import | try |
elif | in | while |
else | is | with |
except | lambda | yield |
变量的赋值
a=1
b="Fran"
c={'name':'Fran','score':90}
另外,Python还允许同时给多个变量赋值如:
a=b=c=1
执行上面这句后,就自动声明了三个整型变量a、b、c(如果之前没有的话),并将它们赋值为1.
a,b,c=1,90,'Fran'
执行上一句后,自动声明两个整型变量a,b并赋值1,90,自动声明字符串变量c并赋值为‘Fran’。
标准的数据类型
Python有五个标准的数据类型:
- Number
- String
- List
- Tuple
- Dictionary
Number
其中Number又被分为int,long(只存在在Python2.X版本中,2.2后int溢出后自动转化为long,3.X版本中long被移除用int替代),float,complex
String
和C语言一样,从左到右都是从0开始的,但不同的是,Python提供了从右到左的索引,如
num=‘1234’
print(num[-1])
那么输出的结果就是从右往左数第一个数也就是4.
与从C语言中繁琐的操作不同,Python中的字符串可以非常自由的进行各种操作
str='Fran'
str+=' '
print(str)
print(\n)
print(str.strip())
这时候,输出结果应当时:
'Fran '
'Fran'
这个例子向我们说明了,在python中,字符串的相加就是拼接,但是字符串的相减并不是字符串的删减,他没有意义,解释器会报错,要想实现字符串做差集的效果可以参考这篇博客以及这篇
strip()是一个方法,用于删除字符串首尾的空白字符’ ’ ,注意,这种方法并没有修改原来的str。
如果你要实现从字符串中获取一段子字符串的话,可以使用 [头下标:尾下标] 来截取相应的字符串,其中下标是从 0 开始算起,可以是正数或负数,下标可以为空表示取到头或尾。
[头下标:尾下标] 获取的子字符串包含头下标的字符,但不包含尾下标的字符。
Python中也可以用 数据类型(变量)来进行强制类型转换
函数 | 描述 |
---|---|
int(x [,base]) | 将x转换为一个整数 |
long(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) | 将一个整数转换为一个字符 |
unichr(x) | 将一个整数转换为Unicode字符 |
ord(x) | 将一个字符转换为它的整数值 |
hex(x) | 将一个整数转换为一个十六进制字符串 |
oct(x) | 将一个整数转换为一个八进制字符串 |
List
乍看之下,Python中的List有些类似C语言中的数组,但差别还是很大的,一个很明显的差异就在于他们所能存放的数据类型,C语言中明确要求数组中的数据必须是同一个数据类型,而Python中的List不然:
list = [ 'Fran', 186 , 71.4,18 ]
此外,python中的List还可以通过相加达到拼接的效果。列表用 [ ] 标识,是 python 最通用的复合数据类型。
列表中值的切割也可以用到变量 [头下标:尾下标] ,就可以截取相应的列表,从左到右索引默认 0 开始,从右到左索引默认 -1 开始,下标可以为空表示取到头或尾。
List的一些方法
在列表的末尾添加元素——append()
a=['i','am']
a.append('Fran')
此时,如果输出a就会得到[‘i’,‘am’,‘Fran’]
在列表中插入元素——insert()
a=['i','Fran']
a.insert(1,'am')
那么输出a的结果就是[‘i’,‘am’,‘Fran’],将insert()中的第二个参数放到下标为第一个参数的位置,其他元素往后移动一个。
使用del删除列表元素
如果知道要删除的元素在列表中的位置,可以使用del语句:
a=['i','am','not','Fran']
del a[2]
这样就能将’not’删去。
使用pop()方法删除元素
有时候,需要将元素从列表时中删除,并接着使用它的值,方法pop()可删除列表任何位置的元素,只需在()填上对应元素的下标即可,当不填是,默认删除最后一个元素。
temp=list.pop(index)
根据值删除元素——remove()
a=['a','b','c']
a.remove('c')
列表永久性排序——sort()
sort()让列表当中的元素按字母顺序排序
a=['a','c','b']
a.sort()
则得到新的a为[‘a’,‘b’,‘c’],另外,向sort()中传递reverse=True如
a.sort(reverse=True)
还可以根据字母倒序排序
使用sorted()对列表进行临时排序
a=['a','c','b']
print(sorted(a))
则将输出排序好的a,而a本身并未改变。
反转排序列表——reverse()
a=['a','c','b']
a.reverse()
确认列表长度——len()
a=['a','c','b']l
print(len(a))
则将输出3
Tuple——元组
元组看起来犹如列表,但使用圆括号而不是方括号来表示。其访问与列表相似,都是通过下标访问。如:
dimensions=(200,50)
dimensions[0]=1
上面的代码运行时会报错,因为元组是不允许被修改的。
Dictionary
在Python中,字典是一系列键-值对。每个键都与一个值相关联(Python中的字典有些类似C语言的结构体)
访问字典中的值
先假设我们事先定义好了字典mydog:
mydog={'color':'yellow','breed':'pug'}
那么只要
print(mydog['breed'])
就可以打印出我的狗的品种为pug
添加键值对
在上面的基础上,我们可以添加更多的关于我的狗狗的信息例如:
mydog['age']=1
这样添加键值对的前提是这个字典至少是定义了的。
修改字典中的值
一年以后我的狗狗又大了一岁,那么这个时候就得修改它的年龄:
mydog['age']=2
删除键值对
对于不需要的键值对,我们还可以进行删除操作,用到的是del语句,如
del dictionary['key']
遍历字典中的键、值
for key in mydog.keys():
print(key)
for value in mydog.values():
print(value)
这样我就顺利输出了狗狗的各方面信息,但使用for循环遍历输出与下两句等价:
print mydog.keys() # 输出所有键
print mydog.values() # 输出所有值
方法keys(),values()实际上返回的是一个列表,其中包含字典所有的键或者值。
字典列表
有点相似结构体数组,原理是新建一个列表,是这个列表的元素的 为字典。
Python运算符
设a=10,b=20
算术运算符
运算符 | 描述 | 实例 |
---|---|---|
+ | 加 - 两个对象相加 | a + b 输出结果 30 |
- | 减 - 得到负数或是一个数减去另一个数 | a - b 输出结果 -10 |
* | 乘 - 两个数相乘或是返回一个被重复若干次的字符串 | a * b 输出结果 200 |
/ | 除 - x除以y | b / a 输出结果 2 |
% | 取模 - 返回除法的余数 | b % a 输出结果 0 |
** | 幂 - 返回x的y次幂 | a**b 为10的20次方, 输出结果 100000000000000000000 |
// | 取整除 - 返回商的整数部分(向下取整) | 9//2=4,-9//2=-5 |
比较运算符
运算符 | 描述 | 实例 |
---|---|---|
== | 等于 - 比较对象是否相等 | (a == b) 返回 False。 |
!= | 不等于 - 比较两个对象是否不相等 | (a != b) 返回 true. |
<> | 不等于 - 比较两个对象是否不相等。python3 已废弃。 | (a <> b) 返回 true。这个运算符类似 != 。 |
> | 大于 - 返回x是否大于y | (a > b) 返回 False。 |
< | 小于 - 返回x是否小于y。所有比较运算符返回1表示真,返回0表示假。这分别与特殊的变量True和False等价。 | (a < b) 返回 true。 |
>= | 大于等于 - 返回x是否大于等于y。 | (a >= b) 返回 False。 |
<= | 小于等于 - 返回x是否小于等于y。 | (a <= b) 返回 true。 |
赋值运算符
成员运算符
运算符 | 描述 | 实例 |
---|---|---|
in | 如果在指定的序列中找到值返回True,否则返回False。 | x 在 y 序列中 , 如果 x 在 y 序列中返回 True。 |
not in | 如果在指定的序列中没有找到值返回 True,否则返回 False。 | x 不在 y 序列中 , 如果 x 不在 y 序列中返回 True。 |
身份运算符
运算符 | 描述 | 实例 |
---|---|---|
is | is 是判断两个标识符是不是引用自一个对象 | x is y, 类似 id(x) == id(y) , 如果引用的是同一个对象则返回 True,否则返回 False |
Is not | is not 是判断两个标识符是不是引用自不同对象 | x is not y , 类似 id(a) != id(b)。如果引用的不是同一个对象则返回结果 True,否则返回 False。 |
运算符优先级
运算符 | 描述 |
---|---|
** | 指数 (最高优先级) |
~ + - | 按位翻转, 一元加号和减号 (最后两个的方法名为 +@ 和 -@) |
* / % // | 乘,除,取模和取整除 |
+ - | 加法减法 |
>> << | 右移,左移运算符 |
& | 位 ‘AND’ |
|^ | 位运算符 |
<= < > >= | 比较运算符 |
<> == != | 等于运算符 |
= %= /= //= -= += *= **= | 赋值运算符 |
is is not | 身份运算符 |
in not in | 成员运算符 |
not and or | 逻辑运算符 |
语句
条件语句
基本形式为
if 判断条件1:
执行语句1……
[elif 判断条件2:
执行语句2……
elif 判断条件3:
执行语句3……]
else:
执行语句4……
注意执行语句为用缩进表示的语句,缩进直接决定了语句的逻辑结构, 这点要特别注意。
循环语句
while循环
与C语言相似
for循环
相较于C语言的for循环,Pyhton的for循环更像是一种遍历。另外的,for循环也可以接else喔!在 python 中,for … else 表示这样的意思,for 中的语句和普通的没有区别,else 中的语句会在循环正常执行完(即 for 不是通过 break 跳出而中断的)的情况下执行,while … else 也是一样。
break语句
Python break语句,就像在C语言中,打破了最小封闭for或while循环。break语句用来终止循环语句,即循环条件没有False条件或者序列还没被完全递归完,也会停止执行循环语句。break语句用在while和for循环中。如果使用嵌套循环,break语句将停止执行最深层的循环,并开始执行下一行代码。
continue语句
Python continue 语句跳出本次循环,而break跳出整个循环。continue 语句用来告诉Python跳过当前循环的剩余语句,然后继续进行下一轮循环。continue语句用在while和for循环中。
pass语句
Python pass 是空语句,是为了保持程序结构的完整性。
pass 不做任何事情,一般用做占位语句。
来源:CSDN
作者:鹧鸪菜C
链接:https://blog.csdn.net/weixin_39450910/article/details/104027353