@yzzer
2020-05-04T21:24:10.000000Z
字数 3362
阅读 2644
默认情况下,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 comment
print("Hello,Python") #This is also a comment
print("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 6
print ("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 = 2019
print(num)
num = 1.0*num
print(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/python3
dict = {}
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()等。
注意: