从菜鸟教程中学习python的笔记:
一、python基础语法篇:
1、输出语句 print("hello world!") 保存文件形式:xxx.py
2、(1)标识符的第一个字符必须是字母表中字母或下划线 _ 。其余为字母数字和下划线
(2)保留字不能作为标识符
>>> import keyword
>>> keyword.kwlist
['False', 'None', 'True', 'and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
3、(1)单行注释:#xxx
(2)多行注释: ''' 注释 ''' 三个单引号 """ 注释 """三个双引号
Python中单引号与双引号的使用方法完全相同。
4、多行语句:(1)如果语句很长,可以用反斜杠来表示\
total=item_one+\
item_two+\
item_three
(2)在 [], {}, 或 () 中的多行语句,不需要使用反斜杠 \
total=['item_one','item_two','item_three',
'item_four','item_fve']
5、字符串:(1)反斜杠可以用来转义,使用 r 可以让反斜杠不发生转义。 如 r"this is a line with \n" 则 \n 会显示,并不是换行。
(2)字符串可以用 + 运算符连接在一起,用 * 运算符重复。
(3)Python 中的字符串有两种索引方式,从左往右以 0 开始,从右往左以 -1 开始。
(4)字符串的截取的语法格式如下:变量[头下标:尾下标:步长]
str='123456789'
print(str) # 输出字符串
print(str[0:-1]) # 输出第一个到倒数第二个的所有字符
print(str[0]) # 输出字符串第一个字符
print(str[2:5]) # 输出从第三个开始到第六个的字符(不包含)
print(str[2:]) # 输出从第三个开始后的所有字符
print(str[1:5:2]) # 输出从第二个开始到第五个且每隔一个的字符(步长为2)
print(str * 2) # 输出字符串两次
print(str + '你好') # 连接字符串
print('------------------------------')
print('hello\nrunoob') # 使用反斜杠(\)+n转义特殊字符
print(r'hello\nrunoob') # 在字符串前面添加一个 r,表示原始字符串,不会发生转义
字符串是一个左开右闭区间,因此输出的结果如下所示:
123456789
12345678
1
345
3456789
24
123456789123456789
123456789你好
------------------------------
hello
runoob
hello\nrunoob
python字符串不能被改变
6、空行:函数之间或类的方法之间用空行分隔,表示一段新的代码的开始。类和函数入口之间也 用一行空行分隔,以突出函数入口的开始。
print('\n') #输出空行
print(r‘\n’) #输出\n
input("\n\n按下 enter 键后退出。") #\n\n 在结果输出前会输出两个新的空行。一旦用按下 enter 键时,将退出。
7、在交互式命令运行中:空格、换行都算一个字符
8、print默认输出是换行的,即为end="\n",如果要实现不换行需要在变量末尾加上 end="",双引 号里面可以添加特色的符号或者字符串
9、在 python 用 import 或者 from...import 来导入相应的模块。
将整个模块(somemodule)导入,格式为: import somemodule
从某个模块中导入某个函数,格式为: from somemodule import somefunction
从某个模块中导入多个函数,格式为: from somemodule import firstfunc, secondfunc, thirdfunc
将某个模块中的全部函数导入,格式为: from somemodule import *
二、python的基本数据类型
1、(1)python中的变量不需要声明。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创 建。
(2)a = b = c = 1 创建一个整型对象,值为 1,从后向前赋值,三个变量被赋予相同的数值。
(3)a, b, c = 1, 2, "runoob" 两个整型对象 1 和 2 的分配给变量 a 和 b,字符串对象 "runoob" 分配给变量 c。
2、数值运算:
>>> 5 + 4 # 加法
9
>>> 4.3 - 2 # 减法
2.3
>>> 3 * 7 # 乘法
21
>>> 2 / 4 # 除法,得到一个浮点数
0.5
>>> 2 // 4 # 除法,得到一个整数
0
>>> 17 % 3 # 取余
2
>>> 2 ** 5 # 乘方
32
3、布尔类型:只有True和False
a = True
b = False
# 比较运算符
print(2 < 3) # True
print(2 == 3) # False
# 逻辑运算符
print(a and b) # False
print(a or b) # True
print(not a) # False
# 类型转换
print(int(a)) # 1
print(float(b)) # 0.0
print(str(a)) # "True"
注:在 Python 中,所有非零的数字和非空的字符串、列表、元组等数据类型都被视为 True,只有 0、空字符串、空列表、空元组等被视为 False。因此,在进行布尔类型转 换时,需要注意数据类型的真假性。
4、(1)列表与python字符串不一样的是,列表中的元素是可以改变的:
>>> a = [1, 2, 3, 4, 5, 6]
>>> a[0] = 9
>>> a[2:5] = [13, 14, 15]
>>> a
[9, 2, 13, 14, 15, 6]
>>> a[2:5] = [] # 将对应的元素值设置为 []
>>> a
[9, 2, 6]
注:list写在方括号之间,元素用逗号隔开。
(2)如果第三个参数为负数表示逆向读取,以下实例用于翻转字符串:
def reverseWords(input):
# 通过空格将字符串分隔符,把各个单词分隔为列表
inputWords = input.split(" ")
# 翻转字符串
# 假设列表 list = [1,2,3,4],
# list[0]=1, list[1]=2 ,而 -1 表示最后一个元素 list[-1]=4 ( 与 list[3]=4 一样)
# inputWords[-1::-1] 有三个参数
# 第一个参数 -1 表示最后一个元素
# 第二个参数为空,表示移动到列表末尾
# 第三个参数为步长,-1 表示逆向
inputWords=inputWords[-1::-1]
# 重新组合字符串
output = ' '.join(inputWords)
return output
if __name__ == "__main__":
input = 'I like runoob'
rw = reverseWords(input)
print(rw)
5、元组的元素不能修改,元组写在小括号里,元素之间用逗号隔开。
构造包含 0 或 1 个元素的元组的特殊语法规则。
tup1 = () # 空元组
tup2 = (20,) # 一个元素,需要在元素后添加逗号
6、Python 中的集合(Set)是一种无序、可变的数据类型,用于存储唯一的元素。
集合中的元素不会重复,并且可以进行交集、并集、差集等常见的集合操作。
a=set('arbacaadbra')
b = set('alacazam')
print(a-b) #a和b的差集 在a中有而b中没有的元素
#输出的结果为:{'r', 'b', 'd'}
在 Python 中,集合使用大括号 {} 表示,元素之间用逗号 , 分隔。
另外,也可以使用 set() 函数创建集合。
注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。
集合输出的顺序是不固定的。
7、列表是有序的对象集合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通 过键来存取的,而不是通过偏移存取。
字典是一种映射类型,字典用 { } 标识,它是一个无序的 键(key) : 值(value) 的集合。
键(key)必须使用不可变类型。在同一个字典中,键(key)必须是唯一的。
8、与字符串类型不同的是,bytes 类型中的元素是整数值(0 到 255 之间的整数),而不是 Unicode 字符。
三、python运算符:
1、算术运算符:
变量a=10,变量b=21
(1)% 取模-返回除法的余数 b%a输出结果为1
(2)** 幂-返回x的y次幂 a**b为10的21次方
(3)// 取整除-往小的方向取整数 9//2 输出结果为4 ;若-9//2输出结果为-5
2、比较运算符
3、赋值运算符:新增海象运算符
4、位运算符:
下表中变量 a 为 60,b 为 13二进制格式如下:
a = 0011 1100
b = 0000 1101
-----------------
a&b = 0000 1100
a|b = 0011 1101
a^b = 0011 0001
~a = 1100 0011
& | 按位与运算符:参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0 | (a & b) 输出结果 12 ,二进制解释: 0000 1100 |
| | 按位或运算符:只要对应的二个二进位有一个为1时,结果位就为1。 | (a | b) 输出结果 61 ,二进制解释: 0011 1101 |
^ | 按位异或运算符:当两对应的二进位相异时,结果为1 | (a ^ b) 输出结果 49 ,二进制解释: 0011 0001 |
~ | 按位取反运算符:对数据的每个二进制位取反,即把1变为0,把0变为1。~x 类似于 -x-1 | (~a ) 输出结果 -61 ,二进制解释: 1100 0011, 在一个有符号二进制数的补码形式。 |
<< | 左移动运算符:运算数的各二进位全部左移若干位,由"<<"右边的数指定移动的位数,高位丢弃,低位补0。 | a << 2 输出结果 240 ,二进制解释: 1111 0000 |
>> | 右移动运算符:把">>"左边的运算数的各二进位全部右移若干位,">>"右边的数指定移动的位数 | a >> 2 输出结果 15 ,二进制解释 |
5、逻辑运算符:查看其余的笔记 bool值除了空的几个为false 其余为true
注:and 与or的运算顺序为从左至右,而not的运算顺序在and与or之前。
【Python】详解 逻辑运算符 (and / or / not) + 布尔逻辑 (bool)_not是什么逻辑运算-CSDN博客6、成员运算符:in:在指定序列中找到返回值; not in:在指定序列中没有找到返回值。
7、身份运算符:is:id(x)==id(y)如果引用一个对象则返回True,否则返回False。 is not反之.
注意is与==的区别:is 用于判断两个变量引用对象是否为同一个, == 用于判断引用变量的值 是否相等。
8、菜鸟教程运算符优先级的表格注意查看。
四、python数字
1、数据类型是不允许改变的,这就意味着如果改变数字数据类型的值,将重新分配内存空间。
2、复数由实数部分和虚数部分构成,可以用a + bj,或者complex(a,b)表示, 复数的实部a和虚部b 都是浮点型。
3、数字运算总是返回一个浮点数
4、菜鸟教程上面的一些函数
五、Python字符串
1、变量[头下标:尾下标] 坐标从左是0开始,从右是-1开始
2、转义字符表以及进制转换 详见菜鸟教程此节内容。
3、print(r'\n')输出的结果为\n,r大写也有此意。
4、字符串格式化的表格注意%s以及%d
5、python三引号允许一个字符串跨多行,字符串中可以包含换行符、制表符以及其他特殊字符
6、f-string 格式化字符串以 f 开头,后面跟着字符串,字符串中的表达式用大括号 {} 包起来,它 会将变量或表达式计算后的值替换进去。
7、python的字符串内建函数如图表
六、python列表
1、创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可。
2、可以使用append()方法来添加列表项,如:list.append('Baidu')
3、删除列表元素:使用del语句,如del list[2]
4、列表相加为元素的扩展,并不是对应位置相加而是数量上面的扩展。
5、迭代为循环语句
6、列表比较:需要引入operator 模块的 eq 方法
7、Python列表函数&方法详见菜鸟教程此节最后面。
七、python元组
1、元组使用小括号(),列表使用方括号[],元组中的符号使用逗号隔开
2、元组中只包含一个元素时,需要在元素后面添加逗号 (,),否则括号会被当作运算符使用
3、元组中的元素值是不允许修改的,但我们可以对元组进行连接组合
4、元组中的元素值是不允许删除的,但我们可以使用del语句来删除整个元组
5、元组是不可变的:所谓元组的不可变指的是元组所指向的内存中的内容不可变。
八、python字典
1、字典的每个键值 key=>value 对用冒号 : 分割,每个对之间用逗号(,)分割,整个字典包括在花 括号 {} 中 ,格式如下所示:
d = {key1 : value1, key2 : value2, key3 : value3 }
2、创建空字典: 使用大括号 { } 创建以及使用内建函数 dict() 创建
3、删除字典元素:
tinydict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
del tinydict['Name'] # 删除键 'Name'
tinydict.clear() # 清空字典
del tinydict # 删除字典
4、字典键的特性:
(1)不允许同一个键出现两次。创建时如果同一个键被赋值两次,后一个值会被记住
(2)键必须不可变,所以可以用数字,字符串或元组充当,而用列表就不行
5、字典内置函数&方法看菜鸟教程此节最后面
九、python集合
1、集合中的元素不会重复,并且可以进行交集、并集、差集等常见的集合操作。
2、可以使用大括号 { } 创建集合,元素之间用逗号 , 分隔, 或者也可以使用 set() 函数创建集合。
3、创建格式:
parame = {value01,value02,...}
或者
set(value)
4、注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。
5、集合输出有去重功能;a-b集合a中包含而集合b中不包含的元素
6、集合的添加操作:s.add(x) 或者s.update(x)参数可以是列表,元组,字典等
移除操作:s.remove(x)或者s.discard移除集合中的元素,且如果元素不存在,不会发生 错误。随机删除s.pop()set 集合的 pop 方法会对集合进行无序的排列,然后 将这个无序排列集合的左面第一个元素进行删除。
清空操作:s.clear()
7、集合内置方法完整列表见菜鸟教程此节最下方。