目录
Python3的基本语法
一、python3的变量
1.1、变量名称规格
1.2、变量的建议
二、python3的关键字
2.1、关键字的定义
2.2、查看python3的关键字列表
三、语句块的缩进
3.1、缩进风格
四、python3的注释及续行
4.1、用 # 或一对 ''' 进行代码的注释
4.2、用" \ "进行python3代码的续行
五、python3中的数据类型
5.1、字符串
5.2、数字类型
5.3、列表(list)
5.4、元组(tuple)
5.5、字典(dictionary)
5.6、数据类型的比较(important)
Python3的基本语法
一、python3的变量
Python 中的变量不需要声明。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。
在 Python 中,变量就是变量,它没有类型,我们所说的"类型"是变量所指的内存中对象的类型。
但是同样python的变量名跟其它高级语言的变量名设置也是要自己的规格。
1.1、变量名称规格
Python3变量名是由大小写字母、下划线和数字组成,但不能以数字开头;
python变量名严格区分大小写。
(Python是动态类型语言,即不需要预先声明变量的类型)
1.2、变量的建议
变量使用小写字母;
尽量使用有意义的名字pythonstring;
尽量简短 pystr;
多个单词间,使用下划线分开 py_str;
类名采用骆驼样式写法 MyClass;
变量使用名词,如phone; 函数使用谓词(动词+名词),如update_phone;
Python是动态类型的语言,变量类型由它的值决定。type(a),可以查看变量类型;
变量在使用之前,必须先赋值。
(变量类型由它的值决定,str(a)把整数类型转换成字符串类型)
>>> a = 888
>>> type(a)
<class 'int'>
#错误的int转换str写法
>>> str(a)
'888'
>>> type(a)
<class 'int'>
#正确的int转换str写法
>>> a = str(a)
>>> type(a)
<class 'str'>
>>>
二、python3的关键字
2.1、关键字的定义
和其他的高级语言一样,python也拥有一些被称作关键字的保留字符。(关键字也叫做保留字)
变量名不能是关键字,否则报错。
任何语言的关键字应该保持相对的稳定,但是因为 python是一门不断成长和进化的语言,其关键字偶尔会更新。
(如果变量名是关键字的话就报错)
>>> if = 1 #如果以关键字为变量名就报错
File "<stdin>", line 1
if = 1
^
SyntaxError: invalid syntax
>>> a = 1 #变量名不是关键字的,能正常使用
>>> print(a)
1
>>>
2.2、查看python3的关键字列表
关键字列表keyword.kwlist和iskeyword()函数都放入了keyword模块以便查阅。
>>> 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']
>>>
>>> 'if' in keyword.kwlist #使用keyword.kwlist列表判断if是不是在关键字列表内
True
>>> keyword.iskeyword('if') #使用keyword.iskeyword函数判断if是不是在关键字存不存在
True
三、语句块的缩进
Python代码块通过缩进对齐表达代码逻辑而不是使用大括号。
缩进表达一个语句属于哪个代码块。
3.1、缩进风格
1或2:可能不够,很难确定代码语句属于哪个块。
8至10:可能太多,如果代码内嵌的层次太多,就会使代码很难阅读。
4个空格:非常流行,范-罗萨姆支持的风格。
(注意:没有子语句时,要有顶头写(顶级代码),否则报错)
(注意:如果判断语句后要有冒号结尾巴,子语句要缩进,缩进级别要一致,否则会报错)
四、python3的注释及续行
虽然python是可读性最好的语言之一,这并不意味着程序员在代码中就可以不写注释。
python注释语句从#字符开始。
注释可以在一行的任何地方开始,解释器会忽略掉该行#之后的所有内容,执行未注释的代码内容。
一行过长的语句可以使用反斜杠\分解成几行。
(多行注释:在pycharm工具里用鼠标选多行,按下ctrl+?可以多行注释,再重复按就是多选取消多选注释)
4.1、用 # 或一对 ''' 进行代码的注释
在代码中可以直接用#注释一行代码,用一对'''符号注释多行代码
用一个" # "号可以注释一行的代码内容
#print('0')
用一对" ''' "可以注释多行的代码内容
'''
print('1')
print('2')
print('3')
'''
4.2、用" \ "进行python3代码的续行
>>> a = "abc\
... 123\
... !@#"
>>> print(a)
abc123!@#
同时,分号;允许你将多个语句写在同一行上。
>>> a = 1 ; print(a) #分号可以实现多行代码共存
1
#如果代码组只有一行,可以直接写到判断条件后面
>>> if 3 > 0: print('888')
... #注意:这里是要回车再能进行print的操作
888
>>>
五、python3中的数据类型
python3的大致数据类型分类为:空值、常量和变量
空值:空值是Python里一个特殊的值,用None
表示。None
不能理解为0
,因为0
是有意义的,而None
是一个特殊的空值。
常量:不能变的变量,比如常用的数学常数π就是一个常量。在Python中,通常用全部大写的变量名表示常量。
变量:Python变量不需要声明,其赋值操作既是变量声明和定义的过程。
按类型细分的话,python3的数据类型分为:字符串、数字类型、列表、元组和字典。
5.1、字符串
python中有单或双引号框着字符串的内容,单引号和双引号无区别。
使用三引号('''或""")可以指定一个多行字符串。
转义符用 \ ,同时用 r 可以让反斜杠不发生转义,如 r"this is a line with \n" 则\n会显示,并不是换行。
字符串用 + (加号)连接在一起(默认一个变量的多个字符间也是连接一起的),用 , (逗号)实现字符间的空一格 ,用 * (星号)后带数字实现字符串的重复次数。
python中的字符串有两种索引方式,从左往右以 0 开始,从右往左以 -1 开始。
python中的字符串不能改变。(数据存储的内存空间位置不变)
python没有单独的字符类型,一个字符就是长度为 1 的字符串。
字符串截取的语法格式如下:变量[头下标:尾下标:步长]。
#!/usr/local/bin/python3
#截取字符串
py_str = 'python3'
print(len(py_str)) #7 取字符的长度
print(py_str[0]) #p 取第一个字符
print(py_str[-1]) #3 取最后一个字符
#print(py_str[7]) #报错,下标超出范围。起始上标由0开始,python3的下标由0到6
print(py_str[2:4]) #th 切片,起始下标包含,但不包含结束下标
print(py_str[2:]) #thon3 从下标为2的字符取到结尾
print(py_str[:2]) #py 从开头取到下标是2之前的字符
print(py_str[:]) #python3 取全部
#取步长
print(py_str[::2]) #pto3 步长值为2,默认是0
print(py_str[1::2]) #yhn
print(py_str[::-1]) #3nohtyp 步长为负,自右向左取,实现逆写
5.2、数字类型
python3支持 int、float、bool、complex(复数)。内置的 type() 函数可以用来查询变量所指的对象类型。
>>> a, b, c, d = 20, 5.5, True, 4+3j
>>> print(type(a), type(b), type(c), type(d))
<class 'int'> <class 'float'> <class 'bool'> <class 'complex'>
Int:有符号整数
bool:布尔值
-True:1
-False:0
float:浮点数
complex:复数
bool类型中的True和False也是数字,分别是1和0
>>> True + 1
2
>>> False + 1
1
python默认以十进制数显示,数字以0o或0O开关为8进制数,数字以0x或0X开关为16进制数,数字以0b或0B开关为2进制数。
表示进制数的符号不区别大小写
>>> 11
11
>>> 0b11
3
>>> 0o11
9
>>> 0x11
17
>>>
5.3、列表(list)
列表是python中使用最频繁的数据类型,列表可以完成大多数集合类的数据结构实现。列表中元素的类型可以不相同,它支持数字,字符串甚至可以包含列表(所谓嵌套)。列表是写在方括号 [] 之间、用逗号分隔开的元素列表。
和字符串一样,列表同样可以被索引和截取,列表被截取后返回一个包含所需元素的新列表。(如下图)
(图片来源https://www.runoob/python3/python3-data-type.html)
列表实例1:
>>> print(alist)
[10, 20, 'bob', 'alice', [100, 200, 300]]
>>> len(alist)
5
>>> print(10 in alist)
True
>>> print(100 in alist)
False
>>> print([100, 200, 300] in alist)
True
>>> alist[2:4]
['bob', 'alice']
>>> print(alist + [1000]) #添加多一个列表项
[10, 20, 'bob', 'alice', [100, 200, 300], 1000]
>>> alist[-1]=[888]
>>> print(alist)
[10, 20, 'bob', 'alice', [888]]
>>>#print(alist + 1000) #Error,不能把列表和数字拼接或相加
列表总结:
列表非常灵活,可以包括多种类型,用中” [] “括起来,里面的元素用逗号”,“隔开。
列表和字符串一样,支持索引和切片,并且用" + "进行拼接。
列表中的元素是可以改变的。(存储内存位置的数据可以修改)
5.4、元组(tuple)
元组与列表类似,元组写在小括号()里,元素之间也是和逗号隔开,也支持多种数据类型!不同的是,元组不能像列表那样对自身的元素进行修改,即定义后不可变(不能修改),也可认作“静态列表”。通常,较少用到元组。
>>> atuple =(1, "tom", 2, "alice")
>>> "tom" in atuple
True
>>> atuple[0]
1
>>> atuple[0]=3 #下面摄氏,元组里的元素定义了是不改变的。否则,报错!
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment
#注意
tup1 = () # 空元组
tup2 = (20,) # 一个元素,需要在元素后添加逗号
元组总结:
元组与字符串一样,元组的元素不能修改。
无级和列表、字符串一样,支持索引和切片,并且用" + "进行拼接,方法一样。
注意构造包含0或1个元素的元组的特殊语法规则。
>>> t1 = () #构造0个元素的元组
>>> print(t1)
()
>>> type(t1)
<class 'tuple'>
>>> t2 = (1) #错误构成一个元素的元组写法
>>> print(t2)
1
>>> type(t2)
<class 'int'>
>>> t2 = (1,) #正确构成一个元素的元组写法
>>> print(t2)
(1,)
>>> type(t2)
<class 'tuple'>
>>> type(t2[0])
<class 'int'>
>>> print(t2[0])
1
5.5、字典(dictionary)
字典(dictionary)是Python中另一个非常有用的内置数据类型。列表是有序的对象集合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。字典是一种映射类型,字典用 { } 标识,它是一个无序的 键(key) : 值(value) 的集合。
键(key)必须使用不可变类型,在 同一个字典中,键(key)必须是唯一的。
#!/usr/local/bin/python3
dic1 = {'name':'meixi', 'age':'18'}
print(dic1['name'])
print(dic1)
dic1[3] = 'good' #添加一个新键,并设置值为good
print(dic1[3])
print(dic1)
++结果为+++
meixi
{'name': 'meixi', 'age': '18'}
good
{'name': 'meixi', 'age': '18', 3: 'good'}
字典总结:
字典是一种映射类型,它的元素是键值对。
字典的关键字必须为不可变类型,且不能重复。
创建空字典使用 { }。
5.6、数据类型的比较(important)
按存储模型分类:(切记)
标量类型:数值、字符串 #单一类型
容器类型:列表、元组、字典 #多种类型
按更新模型分类:
可变类型:列表、字典 #存储内存位置的数据可以修改
不可变类型:数字、字符串、元组 #想改变数据需重新占用另一存储内存位置
按访问模型分类:
直接访问:数字
顺序访问:字符串、列表、元组
映射访问:字典
更多推荐
python3自学(二):python3的基础语法
发布评论