Python3基础语法
编码
默认情况下,Python3源码文件以UTF-O编码,所有的字符串都是unicode字符串。
标识符
第一个字符必须是字母或下划线_
其他部分由字母,数字和下划线组成
大小写敏感
python保留字
1 | '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' |
注释
#为单行注释
多行注释可以使用多个#,’’’和”””
行与缩进
由于python的特色,需要分号作为结尾,也不需要{}来表示代码块,所以缩进尤为重要,是python区分不同代码块的重要环节;缩进的空格数可变,同一个代码块必须包含相同的缩进空格数
例如:1
2
3
4if True:
print ("True")
else:
print ("False")
多行语句
python通常是一行写完,如果语句很长,使用\
反斜杠来实现多行语句
在[].{}.()中的多行语句不需要反斜杠
数据类型
python有四种数据类型:整型,布尔型,浮点数和复数1
2
3
4int(整型) 如1
bool(布尔) 如ture
float(浮点数) 如1.23
complex(复数) 如1+2j
字符串
python中单引号与双引号使用相同
三引号'''
可以指定一个多行字符串
转义符\
反斜杠可以转义,使用r可以让反斜杠不发生转义。如r”this is a line with \n” \n会正常显示 而不是换行
按字面意义级联字符串。如”this””is””string”会被自动转换为this is string
字符串可以用+连接,用*重复
python中字符串有两种索引方式,从左开始以0开始,从右开始以-1开始
字符串不可以改变
没有单独的字符类型,一个字符就是长度为1的字符串
字符串截取的语法格式为:变量[头下标:尾下标:步长]
1 | str='Runoob' |
访问字符串中的值
1 | var1 = 'Hello World!' |
字符串更新
1 | var1 = 'Hello World!' |
字符串运算符
1 | + 字符串连接 a + b 输出结果: HelloPython |
例如:1
2
3
4
5
6
7
8
9
10
11
12
13a = "Hello"
b = "Python"
print("a + b 输出结果:", a + b)
print("a * 2 输出结果:", a * 2)
print("a[1] 输出结果:", a[1])
print("a[1:4] 输出结果:", a[1:4])
结果为:
a + b 输出结果: HelloPython
a * 2 输出结果: HelloHello
a[1] 输出结果: e
a[1:4] 输出结果: ell
三引号
1 | para_str = """这是一个多行字符串的实例 |
常用字符串函数
1 | capitalize() 第一个字符转大写 |
列表
类似于一个数组
访问列表中的值
1 | list1 = ['Google', 'Runoob', 1997, 2000]; |
删除列表元素
1 | list = ['Google', 'Runoob', 1997, 2000] |
列表脚本操作符
1 | len([1,2,3]) 结果为3 显示列表的长度 |
列表常用函数
1 | len(list) 列表元素个数 |
列表常用方法
1 | list.append(obj) 在末尾添加新的对象 |
元组
Python 的元组与列表类似,不同之处在于元组的元素不能修改
元组使用小括号,列表使用方括号
元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可
元组是不可变的
访问元组
1 | tup1 = ('Google', 'Runoob', 1997, 2000) |
删除元组
1 | tup = ('Google', 'Runoob', 1997, 2000) |
元组运算符
与列表几乎一致
元组常用函数
1 | tuple(iterable) 将可迭代系列转换为元组 |
字典
字典是另一种可变容器模型,且可存储任意类型对象。
字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中
访问字典里的值
1 | dict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'} |
删除字典元素
1 | dict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'} |
字典键的特性
1)不允许同一个键出现两次。创建时如果同一个键被赋值两次,后一个值会被记住
2)键必须不可变,所以可以用数字,字符串或元组充当,而用列表就不行
字典常用函数
1 | len(dict) 计算字典元素个数,即键的总数 |
字典常用方法
1 | radiansdict.clear() 删除字典内所有元素 |
用户输入
1 | input("\n\n按下enter键后退出") |
同一行显示多条语句
语句之间必须用分号分隔
1 | import sys;x='runoob';sys.stdout.write(x+'\n') |
输出结果为:1
runoob
多个语句构成代码组
像if,while,de和class这样的复合语句,首行以关键字开始,以冒号结束1
2
3
4
5
6if expression :
suite
elif expression :
suite
else :
suite
print 输出
默认换行,不需要换行在变量尾部加上end=””1
2
3
4
5
6
7
8
9
10
11x="a"
y="b"
# 换行输出
print( x )
print( y )
print('---------')
# 不换行输出
print( x, end=" " )
print( y, end=" " )
print()
执行结果为:1
2
3
4a
b
---------
a b
import与from…import
在 python 用 import 或者 from…import 来导入相应的模块
将某个模块中的全部函数导入,格式为: from somemodule import *
导入sys模块1
2
3
4
5
6import sys
print('================Python import mode==========================')
print ('命令行参数为:')
for i in sys.argv:
print (i)
print ('\n python 路径为',sys.path)
命令行参数
Python -h查看帮助
运算符
运算符分为算数运算符,比较运算符,赋值运算符,逻辑运算符,位运算符,成员运算符,身份运算符
算数运算符
1 | 以下假设变量a为10,变量b为21: |
比较运算符
1 | 以下假设变量a为10,变量b为20: |
赋值运算符
1 | 以下假设变量a为10,变量b为20: |
位运算符
1 | & 按位与运算符:参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0(a & b) 输出结果 12 |
逻辑运算符
1 | 假设变量 a 为 10, b为 20: |
例如:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17a = 0
b = 20
if ( a and b ):
print ("1 - 变量 a 和 b 都为 true")
else:
print ("1 - 变量 a 和 b 有一个不为 true")
if ( a or b ):
print ("2 - 变量 a 和 b 都为 true,或其中一个变量为 true")
else:
print ("2 - 变量 a 和 b 都不为 true")
结果为:
1 - 变量 a 和 b 有一个不为 true
2 - 变量 a 和 b 都为 true,或其中一个变量为 true
成员运算符
1 | in 如果在指定的序列中找到值返回 True,否则返回 False。 x 在 y 序列中 , 如果 x 在 y 序列中返回 True。 |
例如:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18a = 2
b = 20
list = [1, 2, 3, 4, 5 ];
if ( a in list ):
print ("1 - 变量 a 在给定的列表中 list 中")
else:
print ("1 - 变量 a 不在给定的列表中 list 中")
if ( b not in list ):
print ("2 - 变量 b 不在给定的列表中 list 中")
else:
print ("2 - 变量 b 在给定的列表中 list 中")
结果为:
1 - 变量 a 在给定的列表中 list 中
2 - 变量 b 不在给定的列表中 list 中
身份运算符
1 | is is 是判断两个标识符是不是引用自一个对象 x is y, 类似 id(x) == id(y) , 如果引用的是同一个对象则返回 True,否则返回 False |
例如:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16a = 20
b = 30
if ( a is b ):
print ("1 - a 和 b 有相同的标识")
else:
print ("1 - a 和 b 没有相同的标识")
if ( id(a) == id(b) ):
print ("2 - a 和 b 有相同的标识")
else:
print ("2 - a 和 b 没有相同的标识")
结果为:
1 - a 和 b 没有相同的标识
2 - a 和 b 没有相同的标识
常用数学函数
1 | abs(x) 返回数字的绝对值 如abs(-10) 返回 10 |
常用随机数函数
1 | choice(seq) 从序列元素中随机挑选一个元素 比如random.choice(range(10)),从0到9中随机挑选一个整数 |
数学常量
1 | pi 数学常量pi 圆周率 |
周报总结:
1.python语言较为简单,但是也面临着一个新的问题,由于python不需要用;
来代表语句结束,{}
代表代码块,而是使用TAB和空格来进行区分,所以要严格控制TAB和空格的数量,以便区分每个语句或代码块
2.if while
这些复合语句,不像C或者JAVA一样有{},需要在if [条件] 之后加:
表示代码块的开始
3.import
是导入整个模块,from...import
是导入某个模块中的某个函数,第二种更为灵活,可以减少时间复杂度,提高效率和辨识度
4.输入和输出都较为简单,input
和print
与python2的区别就是需要加括号而不是空格
5.字符串可以实现多行代码但是需要用三引号括住
6.字符串不可更改
7.python对大小写敏感
8.反斜杠在python中需要慎用,有可能会造成转义而形成不必要的麻烦
9.python引入了成员运算符(in 和 not in)
可以更加方便地对数据进行查找