2.2 Python编程基础
本节适合编程零基础的读者,如果已有Python 3基础,则可跳过。
为了让大家能够快速入手,本书提供了教学示例程序文件。当你有新想法时,可以将示例代码复制到新建文件中,修改后看看是否能得到想要的运行结果,这是一种比较好的学习方法。
1.Python程序的行
(1)一般一条语句占有一行。
(2)模块之间用空行进行间隔。
(3)如果语句太长,就可以用斜线“\”进行跨行。
见下面的例子(示例2-1跨行演示.py)。
a=15 if a>=10 : print('a大于等于10! ') else : print('a小于10! ') print("好好学习,天天向上。我喜欢学Python。") #下条命令,用符号\分为3行。 print("好好学习,\ 天天向上。\ 我喜欢学Python。")
上面程序中,print语句中使用换行符“\”把1行语句分成了3行。程序运行结果如下。
a大于等于10! 好好学习,天天向上。我喜欢学Python。 好好学习,天天向上。我喜欢学Python。
2.Python程序的注释
(1)在Python程序中,以符号“#”开头的行被当作是注释行。
(2)在Python源码的文件开头中要通过注释行声明编码方式。在中文程序中,一般第1行或第2行声明编码为“utf-8”。Python 3新版本已经将源文件的默认编码定为“utf-8”编码,因此程序中也可以省略。
#-*- coding: utf-8-*-
(3)只包含空格和换行符的行,称为空行。Python 3解释器会自动忽略。
(4)语句后以符号“#”开始的部分为注释。Python 3解释器会自动忽略注释部分。
(5)多行注释的两边用一对3个单引号或3个双引号包含起来多行文字信息。Python 3解释器会自动忽略其中的内容。
下面看示例2-2。
#-*- coding: utf-8-*- ''' 示例2-2 注释的演示.py 这是多行注释的演示 ''' #这是单行注释的演示 a=15 #把15赋值给变量a """ 这是多行注释的演示 a=5 #把5赋值给变量a """ print('a=', a) if a>=10 : #如果a大于等于10 print('a大于等于10! ') else : #否则,a小于10 print("a小于10! ")
程序运行结果:
a= 15 a大于等于10!
由于“a=5”这条语句在多行注释中,因此没有被执行。
3.Python 3程序的缩进
Python 3程序的空格缩进很重要,因为空格缩进长度决定着Python 3程序的逻辑结构。
(1)Python 3用相同空格缩进来表示同一个语句块,缩进是为了方便读取程序,而其他计算机语言一般用花括号“{语句块}”来表示。
(2)Python 3对缩进空格数没有要求,但在同一个模块中缩进空格数要相同,如都空两个空格作为缩进。
(3)在Spyder编辑器中,“Tab”键表示4个空格,因此建议读者以4个空格的倍数作语句块划分。
(4)在Spyder编辑器中,按“Tab”键对选中代码块整体增加4个空格;按“Shift+Tab”组合键对选中代码块整体减4个空格;小于4个空格的就不处理了。
在同一个逻辑块中,如果缩进空格数不同,就会引发错误,出现“IndentationError:unexpected indent”。
请看示例2-3。
a=15 if a>=10 : #如果a大于等于10 print('a大于等于10! ') else : #否则,a小于10 print("a小于10! ") b=15 if b<=10 : #如果b大于等于10 print('b小于等于10! ') elif b<=20: #否则,b小于10 print("b大于10,且b小于20! ") c=15 if c==15: print('c==5') elif b<=30: print("b大于20,且b小于30! ")
程序运行结果:
File "C:/示例2-3.py", line 13 c=15 ^ IndentationError: unexpected indent
4.Python3程序变量命名规则
(1)变量名的长度不受限制,但其中的字符必须是字母、数字或者下画线(_),而不能使用空格、连字符、标点符号、引号或其他字符。
(2)变量名的第一个字符不能是数字,而且必须是字母或下画线。
(3)Python3区分大小写英文字母。
(4)不能将Python3关键字用作变量名。
通过dir()函数可以查看目前系统已经定义的名称,包括用户自定义名称。
dir(__builtins__)函数会列出系统内置模块、系统关键字等名称,这些系统内置模块或关键字不能作为变量名或函数名字。
请看示例2-4。
_MyName='Tom' _My_Name2='Tom2' a=10 A=20 print('_MyName= ', _MyName) print('_My_Name2= ', _My_Name2) print('A= ', A) print('a= ', a) print(dir(__builtins__))
程序运行结果:
_MyName= Tom _My_Name2= Tom2 A= 20 a= 10 ['ArithmeticError', 'AssertionError', 'AttributeError', 'BaseException', 'BlockingIOError', 'BrokenPipeError', 'BufferError', 'BytesWarning', 'ChildProcessError', 'ConnectionAbortedError', 'ConnectionError', 'ConnectionRefusedError', 'ConnectionResetError', 'DeprecationWarning', 'EOFError', 'Ellipsis', 'EnvironmentError', 'Exception', 'False', 'FileExistsError', 'FileNotFoundError', 'FloatingPointError', 'FutureWarning', 'GeneratorExit', 'IOError', 'ImportError', 'ImportWarning', 'IndentationError', 'IndexError', 'InterruptedError', 'IsADirectoryError', 'KeyError', 'KeyboardInterrupt', 'LookupError', 'MemoryError', 'ModuleNotFoundError', 'NameError', 'None', 'NotADirectoryError', 'NotImplemented', 'NotImplementedError', 'OSError', 'OverflowError', 'PendingDeprecationWarning', 'PermissionError', 'ProcessLookupError', 'RecursionError', 'ReferenceError', 'ResourceWarning', 'RuntimeError', 'RuntimeWarning', 'StopAsyncIteration', 'StopIteration', 'SyntaxError', 'SyntaxWarning', 'SystemError', 'SystemExit', 'TabError', 'TimeoutError', 'True', 'TypeError', 'UnboundLocalError', 'UnicodeDecodeError', 'UnicodeEncodeError', 'UnicodeError', 'UnicodeTranslateError', 'UnicodeWarning', 'UserWarning', 'ValueError', 'Warning', 'WindowsError', 'ZeroDivisionError', '__IPYTHON__', '__build_class__', '__debug__', '__doc__', '__import__', '__loader__', '__name__', '__package__', '__spec__', 'abs', 'all', 'any', 'ascii', 'bin', 'bool', 'breakpoint', 'bytearray', 'bytes', 'callable', 'chr', 'classmethod', 'compile', 'complex', 'copyright', 'credits', 'debugfile', 'delattr', 'dict', 'dir', 'display', 'divmod', 'enumerate', 'eval', 'exec', 'filter', 'float', 'format', 'frozenset', 'get_ipython', 'getattr', 'globals', 'hasattr', 'hash', 'help', 'hex', 'id', 'input', 'int', 'isinstance', 'issubclass', 'iter', 'len', 'license', 'list', 'locals', 'map', 'max', 'memoryview', 'min', 'next', 'object', 'oct', 'open', 'ord', 'pow', 'print', 'property', 'range', 'repr', 'reversed', 'round', 'runfile', 'set', 'setattr', 'slice', 'sorted', 'staticmethod', 'str', 'sum', 'super', 'tuple', 'type', 'vars', 'zip']
上面程序中列出的字符串,都是Python 3中的关键字。