python3自学(二):python3的基础语法

目录

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),可以查看变量类型;

              变量在使用之前,必须先赋值

(变量类型由它的值决定,int(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.com/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

按存储模型分类:(切记)

       标量类型:数值、字符串        #单一类型

       容器类型:列表、元组、字典    #多种类型

按更新模型分类

       可变类型:列表、字典              #存储内存位置的数据可以修改

       不可变类型:数字、字符串、元组    #想改变数据需重新占用另一存储内存位置

按访问模型分类:

       直接访问:数字

       顺序访问:字符串、列表、元组

       映射访问:字典

 

 

猜你喜欢

转载自blog.csdn.net/lituxiu/article/details/89632245