@yzzer
2020-05-04T13:24:10.000000Z
字数 3362
阅读 2705
默认情况下,Python3源文件以UTF-8编码,所有字符串都是unicode字符串。当然你也可以为源代码文件指定不同的编码:
# -*- coding: cp-1252 -*-
上述的定义允许在源文件中使用Windows -1252字符集中的字符编码,对应语言为保加利亚语、白俄罗斯语、马其顿语、俄语、埃塞俄比亚语。
_注:Python3支持中文作为变量名
————————————————
保留字不能作为任何标识符名称。
Python的标准库提供了一个 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']
| False | class | finally | is | return |
|---|---|---|---|---|
| None | continue | for | lambda | try |
| True | def | from | nonlocal | while |
| and | del | global | not | with |
| as | elif | if | or | yield |
| assert | else | import | pass | async |
| break | except | in | raise | await |
Python中单行注释以#开头,实例:
#!/usr/bin/python3# This is a commentprint("Hello,Python") #This is also a commentprint("Hello BUCT") #This still is a comment
代码执行结果为:
Hello,Python
Hello BUCT
多行注释可以用多个#号,还有```以及"""
实例:
#!/usr/bin/python3# 第一个注释# 第二个注释'''第三注释第四注释'''"""第五注释第六注释"""print ("Hello, Python!")
执行结果为:
Hello, Python
Python要求通过缩进来区分代码隶属关系
通过对其缩进来区分一个代码块
而不是类似大部分高级语言C++、Java使用关键字和{}来区分代码上下级关系,这种强制性的规则使得Python具有很强的可读性
为保证Python的缩进正确,通常使用Tab键来控制缩进
注意:同一个代码块必须包含相同的缩进空格数
以下是正确实例:
if True:print("True")else:print("False")
以下是错误实例:
if True:print("Answer")print("True")else:print("Answer")print("False") #缩进不一致
错误实例会出现以下错误:
File "test.py", line 6print ("False") # 缩进不一致,会导致运行错误^IndentationError: unindent does not match any outer indentation level
写代码通常是一句写完一条语句,但如果语句很长时就会影响程序的可读性,让维护显得很吃力。在Python中如果语句很长时,我们可以用反斜杠\来实现多行语句
例如:
total = item_one + \item_two + \item_three
当然,在[],{},()中的多行语句不需要使用反斜杠\
例如:
total = ['item_one','item_two','item_three', 'item_four','item_five']
Python3中数字有四种类型:整数(integer)、布尔量(boolean)、浮点数(floating point number)和复数(complex)
Python3取消了对长整型(long integer)变量的单独支持,但不意味着它无法储存长整型数字,在整型变量溢出后,会自动转换为长整型,这也体现了Python的变量特点——变量类型随着数据类型的改变而改变,一个变量可以改变指向的内存空间地址以及数据类型
实例:
num = 2019print(num)num = 1.0*numprint(num)
结果为
2019
2019.0
上述结果显示num的类型可以由整型转化为浮点型
上述代码也展示了Python的另一个特性——Type promotion,及会在运算时产生类型转化(整型乘浮点结果为浮点)
同时python还支持了复数的运算,还为复数建立了专门的cmath数学函数库(会在下面解释函数库引用)
下面是基本数字类型的举例
- int(整数) 0,1,
- bool(布尔) True(1),False(0)
- float(浮点数) 1.23,2E-3
- complex(复数) 1 + 2j,1.1+2.2j
\ \n \a \t 按字面意义级联字符串,会自动转为一个字符串
如"this ""is ""string"会自动转为
this is string
然而使用 r 来取消转义时,只能取消离它最近的子字 符串的转义
如 "this\n" r"is \n" "a\n" "string"
结果是
this
is \na
string
字符串可以用+运算符连接在一起,用*符号重复。
字典(dictionary)是Python中另一个非常有用的内置数据类型。
列表是有序的对象集合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。
字典是一种映射类型,字典用 { } 标识,它是一个无序的 键(key) : 值(value) 的集合。
键(key)必须使用不可变类型。
在同一个字典中,键(key)必须是唯一的。
#!/usr/bin/python3dict = {}dict['one'] = "1 - 菜鸟教程"dict[2] = "2 - 菜鸟工具"tinydict = {'name': 'runoob','code':1, 'site': 'www.runoob.com'}print (dict['one']) # 输出键为 'one' 的值print (dict[2]) # 输出键为 2 的值print (tinydict) # 输出完整的字典print (tinydict.keys()) # 输出所有键print (tinydict.values()) # 输出所有值
以上实例输出结果:
{'name': 'runoob', 'code': 1, 'site': 'www.runoob.com'}dict_keys(['name', 'code', 'site'])dict_values(['runoob', 1, 'www.runoob.com'])
构造函数 dict() 可以直接从键值对序列中构建字典如下:
>>>dict([('Runoob', 1), ('Google', 2), ('Taobao', 3)]){'Taobao': 3, 'Runoob': 1, 'Google': 2}>>> {x: x**2 for x in (2, 4, 6)}{2: 4, 4: 16, 6: 36}>>> dict(Runoob=1, Google=2, Taobao=3){'Runoob': 1, 'Google': 2, 'Taobao': 3}
另外,字典类型也有一些内置的函数,例如clear()、keys()、values()等。
注意: