Python是弱类型语言,关于弱类型有两个含义:
(1)、所有的变量无须声明即可使用,或者说对从末用过的变量赋值就是声明了该变量;
(2)、变量的数据类型可以随时改变,同一个变量可以进行多次赋值,可以赋数值型和字符串型值。
一、 单行注释和多行注释
注释可提高程序可读性,用于解释某行或某部分程序的作用和功能。此外注释也是调试程序的重要方式,在调试时可将不希望编译、执行的代码注释掉。注释还可以为别人或自己过一段时间后能读懂代码的目的提供帮助。合理的代码注释占源代码 1/3 左右。
Python语言不能在标识符和字符串中间插入注释,除此之外,可以在其他任何地方插入空字符或注释,例如一行代码的末尾。
Python中的注释有两种形式:单行注释和多行注释。
(1)、单行注释以 # 号开始,直到本行的末尾都是注释。单行注释可以在一行的起始位置,也可在一行代码的末尾处,还可用于注释掉源代码。在一行中 # 号后面的代码都将被解释器忽略。
(2)、多行注释可以换行,可以注释掉多行代码。多行注释使用成对的三个单引号或三个双引号。
Python源代码中的注释信息,主要是对代码的作用做一些说明,向人提供一些说明信息,解释器会忽略注释的内容。添加注释是调试程序的重要方法,在调试程序时,可将源代码中的某行或某几行注释或者取消注释后,再次运行源程序,可缩小错误发生的范围,有利于排错。
二、 变量
变量是用来保存程序中的数据。变量就像一个个小容器,这些容器中装的是数据。常量也用于装程序中的数据。
常量与变量的区别:常量一旦保存某个数据后,该数据不会发生改变;变量保存的可以多次发生改变,只要程序对变量重新赋值即可。
Python中等号(=)是赋值运行符,如 a =15 是一条赋值语句,用于将 15 装入变量 a 中,也就是将 15 赋值给变量a。
Python的弱类型语言的两个典型特征:
变量无须声明可直接赋值:对一个不存在的变量赋值就相当于定义了一个新变量。
变量的数据类型可以动态改变:同一个变量可以多次赋值,可以第一次赋值整数值,第二次赋值字符串。
1、弱类型语言解释
在Python交互式解释器下,输入 a=5,此时变量 a 是整型(通过type(a)命令可看到)。如果要改变变量 a 的值,只需要将新值赋值给变量 a 即可,新值会覆盖原来的值,例如 a='hello michael',此时变量 a 的值已经改变,并且通过 type(a) 命令也可知 a 的类型变成了字符串。
在交互式解释器下,可以直接输入某个变量名查看变量值,但是在代码文件中,必须使用 print() 函数来输出变量值才能看到结果。
2、print 函数介绍
print()函数有很多功能,可以同时输出多个变量。详细语法如下:
print(value, ..., sep=' ', end='
', file=sys.stdout, flush=False)
value 参数可以接受多个变量或值。
sep 参数默认是空格,表示输出多个变量时使用空格分隔,例如可使用 “|” 做分隔符,修改为 sep="|"。
end 参数默认是换行,表示print()函数输出后换行,如果不想换行,可修改这个end参数,例如修改为 end=""。
file 参数指定 print()函数的输出目标,file参数默认值是 sys.stdout,表示系统的标准输出,也就是屏幕,如果要输出到文件中,
可以改变这个file参数,例如:print('hello world!', file=f) 其中 f 是一个打开的文件指针。
flush 参数控制输出缓存,默认为False,保持默认值可获取较好的性能。
下面示例代码使用print()函数输出到文件:
f = open('michael.txt', 'w', encoding="utf-8")
print("Hello world!", file=f)
print("走你,世界!", file=f)
f.close()
3、 变量命名规则
Python使用标识符给变量命名,标识符是用于给程序中变量、类、方法命名的符号,标识符需要是合法的名字。
标识符以字母、下划线(_)开头,后面可以有多个字母、数字、下划线组成,这里的字母可以是英文字母、中文字符。由于Python3支持UTF-8字符集,所以这里的标识符可以使用UTF-8所能表示的多种语言字符。此外,标识符区分大小写,要注意标识符中字母的大小写情况。
在Python 2.x 版本中要使用中文字符或中文变量,需要在源程序的第一行增加 # coding:utf-8,在保存时也要保存为UTF-8字符集。
标识符的规则如下:
(1)、标识符可以是字母、数字、下划线组成,但是数字不能做开头,中文字符可以做开头。
(2)、标识符不能是Python关键字,但可以包含关键字。
(3)、标识符不能包含空格。
在变量名称中,不能含有空格,不能以数字开头,可以含有特殊字符下划线外,不能含有其它特殊字符。例如:
合法的变量名:michael,mi_chael,_MiChael。
不合法的变量名:mi#chael,3michael
4、Python关键字和内置函数
Python的关键字和内置函数名不建议用作变量名。原因如下:
(1)、如果使用关键字作为变量名,Python解释器会报错。
(2)、如果使用内置函数名作为变量,内置函数会被这个变量覆盖,对应的内置函数就不能使用。
使用命令可以查看Python中的所有关键字:
import keyword # 导入 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
上面这些关键字都不能用作变量名。
Python提供的内置函数有:
abs(),all(),any(),basestring(),bin(),bool(),bytearray(),callable(),chr(),classmethod(),cmp(),compile(),complex(),delattr(),dict(),dir(),divmod(),enumerate(),eval(),execfile(),file(),filter(),float(),fonnat(),frozenset(),getattr(),globals(),hasattr(),hash(),help(),hex(),id(),input(),int(),isinstance(),issubclass(),iter(),len(),list(),locals(),long(),map(),max(),memoryview(),min(),next(),object(),oct(),open(),ord(),pow(),print(),property(),range(),raw_input(),reduce(),reload(),repr(),reversed(),zip(),round(),set(),setattr(),slice(),sorted(),staticmethod(),str(),sum(),super(),tuple(),type(),unichr(),unicode(),vars(),xrange(),Zip(), __import__(),apply(),buffer(),coerce(),intern。
上面这些内置函数,部分是 Python2 版本中的,这些内置函数的名字也不要用作标识符,否则内置函数会被覆盖。
三、 数值类型
Python支持多种数值类型,例如支持整数型、浮点型和复数等。
1、整型
在Python3中,整数值不用区分short、int、long型,都是 int 型。在Python2 中,对于大整数是 long 型。对于大整数,Python 没有限制什么整数最大,再大的整数通常也不会发生溢出问题。
Python的整型还支持 None 值(空值)。
Python整型数值有4种表示形式:
(1)、十进制形式:最普通的整数,也就是十进制整数。
(2)、二进制形式:以0b 或 0B开头的整数,整数只有 0 和 1。
(3)、八进制形式:以 0o 或 0O 开头的整数,整数只有 0~7 八个数字。
(4)、十六进制形式:以 0x 或 0X 开头的整数,整数有 0~9,a~f 十六个。
示例如下:
hex1 = 0x10f # 定义一个整数型十六进制数
hex2 = 0Xcf # 定义一个整数型十六进制数
print(hex1, hex(hex2)) # 输出默认为会将十六进制数转换成十进制数,hex() 函数可转换成十六进数
bin_val = 0b101 # 定义一个整数型二进制数
oct_val = 0o777 # 定义一个整数型八进制数
print(bin_val, oct_val) # 输出同样会转换成十进制数,输出是:5 511
在Python3 中,还可以在数值(包括浮点数)中增加下划线作为分隔符,下划线不会影响数值本身。例如:
one_million = 1_000_000 # one_million 的实际值是 1000000
num = 123_456_789 # num 的实际值是 123456789
2、浮点型
浮点型数值是带有小数点的数值,Python中浮点数类型是float,浮点数有两种表示形式:
(1)、十进制形式:平时常见的浮点数形式,例如:3.14,31.415,0.314等。浮点数必须要有一个小数点,否则会被当成整数。
(2)、科学计数形式:例如 3.14e3。只有浮点数才能使用科学计数形式表示,31400是一个整数值,但314e2是一个浮点型值。
在Python中,除法运算的除数不能为 0,也就是不能除以 0。整数值和浮点数值都不能除以 0。
4、复数
Python支持复数(类型是complex),复数的虚部用 j 或 J 来表示。要对复数进行计算,可导入 cmath 模块,该模块有各种支持复数运算的函数。
m1 = 2 + 3.14j
m2 = 5 - 1.18j # 定义两个复数 m1 , m2
print(m1, type(m1)) # 输出是:(2+3.14j) <class 'complex'>
print(m1 + m2) # 复数运算:(7+1.96j)
import cmath # 导入复数运算模块 cmath
print(cmath.sqrt(-1)) # 计算平方根,输出:1j
print(cmath.sqrt(m1)) # 也可以计算自定义的平方根