鹧鸪菜的Python学习笔记

↘锁芯ラ 提交于 2020-01-21 04:32:09

鹧鸪菜的Python学习笔记

变量:

用标识符命名的存储单元的地址称为变量,变量是用来存储数据的,通过标识符可以获取变量的值,也可以对变量进行赋值。对变量赋值的意思是将值赋给变量,赋值完成后,变量所指向的存储单元存储了被赋的值,在Pyhton语言中赋值操作符为“=、+=、-=、*=、/=、%=、**=、//=”。

变量声明

当程序使用变量存储数据时,必须要先声明变量,然后才能使用。声明变量的语法如下:

identifier [ = value] ;

其中identifier是标识符,也是变量名称。value为变量的值,该项为可选项,可以在变量声明时给变量赋值,也可以不赋值。声明变量时,不需要声明数据类型,Python会自动选择数据类型进行匹配。identifier只能包含字母、数字、下划线,可以下划线和字母开头,但是不能以数字开头,不能包含空格,也不要将python关键字和函数名作为变量名(这一点与C基本一致)
附:Python中的保留字

and exec not
assert finally or
break for pass
class from print
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=1234print(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.418 ]

此外,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 不做任何事情,一般用做占位语句。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!