Python语法简单,容易学习。本章将从Python基础语法出发,讲解学习Python需要掌握的最基础的知识点,比如:基本输入输出、运算符、常见函数、内存机制等内容。
提示:以下是本篇文章正文内容,下面案例可供参考
注释的作用是为代码添加解释说明的文字,易于让其他开发者快速读懂代码的功能,为团队合作开发、后期代码维护提供方便。程序在运行时会忽略被注释的内容,注释不会影响代码的正常运行。简而言之,注释是给人看的,计算机不运行。
Python注释分为单行注释和多行注释:
# 我是单行注释,我不会被执行
>>> print('Hello World!') # 打印’Hello World'
Hello World!
'''
我是三个单引号注释的多行语句,
不会被计算机执行,
也不会影响程序正常运行
'''
>>> print('Hello Python!')
Hello Python!
"""
我是三个双引号注释的多行语句,
我也不会被计算机执行,
也不会影响程序正常运行
"""
>>> print('Hello world!')
Hello world!
多行注释一般被用在定义类和定义函数中,对类和函数的功能以及各种形式参数进行解释说明。
在Java,C\C++等语言中,用{}表示代码块,当层级关系比较复杂时很容易混淆大括号之间的关系,而且在编写代码时输入{}比较麻烦。Python秉持语言简单的原则,在Python中用缩进来表示代码块的层级关系,一个缩进其实就是四个空格键,在编辑软件中经常把按一次TAB键等同于四个空格键,也就是一个缩进。
a = 5
b = 10
if a > b:
print('a大于b') # a>b时执行该语句
else:
print('a小于b') # a
满足if条件就会执行打印‘a大于b’,否则就执行打印‘a小于b’,5肯定小于10,因此会执行else下面的print()函数打印‘a小于b’。两个print()函数均在if条件下,print()函数前面的间隔就是缩进。
通常语句末尾的冒号表示代码块的开始,在if、for、while、函数、类等定义钟都会使用代码块。需要注意的是,同级代码块的缩进量应保持相同,同级的缩进量不同会导致代码报错,无法运行。
Python中标识符主要用在变量、函数、类、模块、对象等的命名中,有些标识符如:if、for、while、break、pass等称为关键字,这些关键字代表了特殊的意义,用户在使用时不能使用这些关键字作为变量名或者自定义函数和自定义类的名称。Python对大小写敏感,在使用这些关键字时要严格区分大小写,不能混淆,否则会造成代码报错!
Python提供了一个库可以查询关键字,导入keyword库,打印keyword中的kwlist
>>> import keyword
>>> print(keyword.kwlist)
['False', 'None', 'True', '__peg_parser__', 'and', 'as', 'assert', 'async', 'await', '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程序中保存数据。在Python中,所有的数据都是对象,变量保存的是对象的引用。
变量命名需要遵守一定的规则,具体规则如下:
ABC = 5
abc = 5
# 这是两个不同的变量
_list = []
年龄 = 20
str_01 = '字符串'
# 以上变量名都是合法变量
1name = 'Python' # 非法变量
price$ = 50 # 非法变量
简单赋值用于为一个变量赋值。
a = 10
# '='为赋值号,不是等于的意思
序列赋值可以一次为多个变量赋值,"="左侧使用元组、列表表示多个变量,右侧用元组、列表或字符串等序列表示数据。系统会按照位置先后顺序依次赋值给变量。
>>> x, y = 10, 20 # 直接为多个变量赋值
>>> print(x)
10
>>> print(y)
20
>>> (x, y) = (30, 40) # 使用元组为多变量赋值
>>> print(x)
30
>>> print(y)
40
>>> [x, y] = [50, 'abc'] # 使用列表为多变量赋值
>>> print(x)
50
>>> print(y)
abc
>>> (x, y) = 'ab' # 使用字符串为多变量赋值
>>> print(x)
a
>>> print(y)
b
# 当等号右侧为字符串时,Python会将字符串分解为单个字符,依次赋值给各变量,此时变量个数与字符串拆分后的字符个数必须想等,否则会报错
序列赋值时,在变量名前使用"*",表示将剩余部分打包成列表,例如:
>>> x, *y = 'abcd' # 将第一个字符赋值给x, 剩余的字符打包成列表赋值给y
>>> print(x)
a
>>> print(y)
['b', 'c', 'd']
>>> *x, y = 'abcd' # 将最后一个字符赋值给y, 其他字符打包成列表赋值给x
>>> print(x)
['a', 'b', 'c']
>>> print(y)
d
>>> x, *y, z = 'abcd' # 将第一个字符赋值给x, 最后一个字符赋值给z, 其他字符打包成列表赋值给y
>>> print(x)
a
>>> print(y)
['b', 'c']
>>> print(z)
d
多目标赋值
多目标赋值指使用连续的多个"=",同时将一个数据赋值给多个变量。例如:
>>> a = b = c = 100 # 将整数100同时赋值给a,b,c三个变量
>>> print(a)
100
>>> print(b)
100
>>> print(c)
100
在使用Python语言编写程序时会涉及到两个关于行的概念:物理行和逻辑行。物理行是指在编辑器中用于编写代码所占用的空间;逻辑行是根据代码运行逻辑,具有同一运行逻辑的代码属于一个逻辑行。通常情况下,一个物理行放一个逻辑行的代码,但是会有一些特殊情况出现,比如逻辑行代码特别长的情况下,为了方便查看代码,通常会将一个逻辑行代码放在多个物理行中。示例如下:
# 分别定义六个变量,计算求和
# 定义变量的每个物理行存放一个逻辑行代码
>>> item_one = 100
>>> item_two = 200
>>> item_three = 300
>>> item_four = 400
>>> item_five = 500
>>> item_six = 600
>>> total = item_one + item_two + item_three + item_four + item_five + item_six
>>> print(total)
以上示例中,计算total求和的代码为一个逻辑行,但是由于该逻辑行的代码有点长,不美观,因此可以将一个逻辑行代码分别放在多个物理行中,如下示例,这样也不会影响逻辑行代码的正常运行。其中""为Python中的续行符号,在PyCharm编辑器中可以直接使用回车键进行换行,PyCharm会自动补全续行符号。
注意:
>>> item_one = 100
>>> item_two = 200
>>> item_three = 300
>>> item_four = 400
>>> item_five = 500
>>> item_six = 600
>>> total = item_one + item_two + \
item_three + item_four + \
item_five + item_six
>>> print(total)
Python使用分号作为语句分隔符号,从而将多个逻辑行写在同一个物理行,示例如下:
>>> item_one = 100; item_two = 200; item_three = 300
>>> print(item_one)
>>> print(item_two)
>>> print(item_three)
注意:创建变量可以使用以上这种写法,但是通常情况下不建议这样使用。
Python3.x中使用input()函数进行数据输入,input()函数语法格式如下:
变量名 = input([prompt])
其中,变量名和提示字符串均可省略。input()函数接收用户输入的内容,用户在提示信息之后输入数据,输入完后按回车键结束输入,input()函数将用户输入的内容变为字符串赋值给变量名,所以input()函数返回的数据类型为字符串。示例如下:
>>> age = input('请输入您的年龄:')
请输入您的年龄:25
>>> print(age)
25
>>> print(type(age))
<class 'str'>
如果需要返回值的类型是整数或者浮点数,可以使用int()函数或者float()函数将返回值的类型进行转换。
在Python中有一个eval()函数可返回字符串的内容,其功能相当于去除字符串的引号,示例如下:
>>> a = eval('100')
>>> print(type(a))
<class 'int'>
如果需要输入整数或浮点数时,可以使用eval()函数对输入的内容进行还原,示例如下:
>>> age = eval(input('请输入您的年龄:'))
请输入您的年龄:25
>>> print(age)
25
>>> print(type(age))
<class 'int'>
Python3.x中使用print()函数进行输出,print()函数语法格式如下:
print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)
参数:
返回值:
print()函数所有的参数均可省略,无参数时print()输出一个空行,示例如下:
>>> print()
print()函数可同时输出一个或多个数据,这些数据都是传递给*objects这个参数的,输出多个对象时,需要用 ","分隔,示例如下下:
>>> print('python', '程序设计', 100) # 输出多个数据,各数据之间用逗号间隔
pyhon 程序设计 100
print()函数使用sep参数指定多个数据之间的分割符,默认分隔符为空格,可以自行设置分隔符,示例如下:
>>> print('python', '程序设计', 100) # 默认分隔符为空格
pyhon 程序设计 100
>>> print('python', '程序设计', 100, sep='#') # 将分隔符改为"#"
python#程序设计#100
print()函数默认以回车换行符号作为输出结尾符号,即在输出所有数据后会换行。可以用end参数指定输出结尾符号,示例如下:
>>> print('python'); print('程序设计') # 默认为换行符"\n", 第二个print()函数会在下一行执行
python
程序设计
>>> print('python', end='*'); print('程序设计') # 指定“*”为输出结尾符号,两个print()函数输出会在一行
python***程序设计
print()函数由file参数控制输出数据到指定输出流,默认标准输出流为sys.stdout,也可以对file参数进行更改,示例如下:
>>> f = open(r'D:\data.txt','w') # 打开文件
>>> print('python', '程序设计', 100, file=f)
>>> f.close()
上述代码创建了一个data.txt文件,通过print()函数将数据输出到文件。如图所示:
Python中有一些函数可以作用于任何数据类型,被使用的频率较高,在这里简单介绍:
type()函数能够返回对象的类型,常用于测试数据类型,但是type()函数有两种语法结构,type()函数语法格式如下:
type(object)
参数:
返回值:
示例如下:
>>> print(type(1))
<class 'int'>
type()函数另外一种语法格式如下:
type(name, bases, dict)
参数:
返回值:
这种方法不常用,了解即可,示例如下:
>>> class X(object): # 定义一个类
a = 1
>>> print(type('X', (object,), dict(a=1))) # 产生一个新的类型 X
<class '__main__.X'>
len()函数返回对象(字符、列表、元组等)长度或项目个数,len()函数语法格式如下:
len(s)
参数:
返回值:
示例如下:
>>> str = "python"
>>> print(len(str))
6