【Python篇】Python基础语法

拖拖拖,能使工作便捷高效的为何要拒绝,作个记录---【蘇小沐】

1.实验环境

默认情况下,Python 3 源码文件以 <font color='red'>UTF-8</font> 编码,所有字符串都是 unicode 字符串。

指定源码文件其它编码:

# -*- coding: cp-1252 -*-
# 允许在源文件中使用 Windows-1252 字符集中的字符编码,对应适合语言为保加利亚语、白俄罗斯语、马其顿语、俄语、塞尔维亚语。
系统 版本
Windows 11 专业工作站版 22H2(22621.2134);
VS Code 1.81.0;
Python3 3.11.4;

1、标识符

  • <font color='red'>第一个字符必须是字母表中字母或下划线 _ </font>。
  • 标识符的其他的部分由字母、数字和下划线组成。
  • <font color='red'>标识符对大小写敏感</font>。

<font color='red'>在 Python 3 中,允许使用中文、非 ASCII 标识符作为变量名</font>。

2、Python保留字(关键字:不能用作任何标识符名称)

保留字即关键字,我们不能把它们用作任何标识符名称。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']

3、注释

<font color='red'>单行注释以 # 开头</font>。

<font color='red'>多行注释可以用多个 # 号分别表示,或者使用 ''' 和 """成对包含表示</font>。

1)脚本首行【#!】的作用:指定解析器执行脚本(注意:必须指定在第1行才生效)

【#!只对/Linux/Unix 用户适用,Windows用户可无需添加此行,添加此行有助于脚本程序的可移植性】

<font color='red'>用法1【#!/usr/bin/python3(中间没有空格)】</font>:

#!/usr/bin/python3

<font color='red'>/usr/bin/python3是Linux/Unix 用户下的python3 解释器的默认安装路径,首行加上#!前缀,用来指定Linux/Unix 用户使用该路径下的解释器来执行本脚本</font>。不同系统下路径有区别。如果有别的解释python代码的解释器,也可以替换其所在的路径。

添加后,Linux/Unix 用户可以直接用 ./ 执行Python脚本,不然会出错,因为找不到Python解析器。

<font color='red'>用法2【推荐此写法】</font>:

#!/usr/bin/env python3

这种用法是为了防止Linux/Unix 操作系统用户没有将 python 装在默认的 /usr/bin 路径里。当系统看到这一行的时候,首先会到 env 设置里查找 python3 的安装路径,再调用对应路径下的解释器程序完成操作。(推荐此写法,可以增强代码的可移植性)

Windows解析器路径:

比如,在Windows下,使用微软应用商店安装的python3,默认解析器路径为:

C:/Users/[电脑用户名]/AppData/Local/Microsoft/WindowsApps/python3.11.exe

我们也可以使用VS Code执行程序来显示。

image-20230809203321148

#!/usr/bin/env python3
# 第1个注释
# 第2个注释

'''
第3个注释
第4个注释
'''
"""
第5个注释
第6个注释
"""
print ("蘇小沐, Python从入门到入土!")

4、行与缩进

python最具特色的就是使用缩进来表示代码块,不需要使用大括号 {}

<font color='red'>缩进的空格数是可变的,但是同一个代码块的语句必须包含相同的缩进空格数。</font>

1)多行语句

Python 通常是一行写完一条语句,但如果语句很长,我们可以使用反斜杠 \ 来实现多行语句,例如:

total = item_one + \
        item_two + \
        item_three

在 [], {}, 或 () 中的多行语句,不需要使用反斜杠 \,例如:

total = ['item_one', 'item_two', 'item_three',
        'item_four', 'item_five']

2)空行【属于程序代码的一部分】

函数之间或类的方法之间用空行分隔,表示一段新的代码的开始。类和函数入口之间也用一行空行分隔,以突出函数入口的开始。

空行与代码缩进不同,空行并不是 Python 语法的一部分。书写时不插入空行,Python 解释器运行也不会出错。<font color='red'>但是空行的作用在于分隔两段不同功能或含义的代码,便于日后代码的维护或重构。</font>

3)等待用户输入【\n\n】

执行下面的程序在按回车键后就会等待用户输入:

#!/usr/bin/env python3  
input("\n\n按下 enter 键后退出。")

以上代码中 ,\n\n 在结果输出前会输出两个新的空行。一旦用户按下 enter 键时,程序将退出。

4)<font color='red'>同一行显示多条语句【;】</font>

<font color='red'>Python 可以在同一行中使用多条语句,语句之间使用英文分号;分割。</font>

#!/usr/bin/env python3  
import sys; x = 'runoob'; sys.stdout.write(x + '\n')

使用脚本执行以上代码,输出结果为:

runoob

image-20230809221735034

使用交互式命令行执行,输出结果为:

runoob
7

此处的 7 表示字符数,runoob 有 6 个字符,\n 表示一个字符,加起来 7 个字符。

>>>import sys; sys.stdout.write(" hi ")    # hi 前后各有 1 个空格

image-20230809222642146

5)多个语句构成代码组

缩进相同的一组语句构成一个代码块,我们称之代码组。

像if、while、def和class这样的复合语句,<font color='red'>首行以关键字开始,以冒号( : )结束</font>,该行之后的一行或多行代码构成代码组。

我们将首行及后面的代码组称为一个子句(clause)。

if expression : 
   suite
elif expression : 
   suite 
else : 
   suite

5、数字(Number)类型

<font color='red'>python中数字有四种类型:整数、布尔型、浮点数和复数。</font>

数字类型 说明
int (整数) 如 1, 只有一种整数类型 int,表示为长整型,没有 python2 中的 Long。
bool (布尔) 如 True。
float (浮点数) 如 1.23、3E-2。
complex (复数) 如 1 + 2j、 1.1 + 2.2j。

6、字符串(String)

符号是英文符号。

字符串 说明
' 或 " <font color='red'>Python 中单引号 ' 和双引号 " 使用完全相同。</font>
''' 或 """ 使用三引号(''' 或 """)可以指定一个多行字符串。
\ 转义符,实现多行语句。
r r 指 raw,即 raw string。使用 r 可以让反斜杠不发生转义。 如 r"this is a line with \n"\n 会显示,并不是换行。
[], {}, 或 () 在 [], {}, 或 () 中的多行语句,不需要使用反斜杠 \。
  • 按字面意义级联字符串,如 "this " "is " "string" 会被自动转换为 this is string
  • 字符串可以用 + 运算符连接在一起,用 ***** 运算符重复。

1)索引方式【从0开始】

Python 中的字符串有两种索引方式,**<font color='red'>从左往右以 0 开始,从右往左以 -1 开始</font>**。

  • Python 中的字符串不能改变。
  • <font color='red'>Python 没有单独的字符类型,一个字符就是长度为 1 的字符串</font>。
  • 字符串的截取的语法格式如下:变量[头下标:尾下标:步长]
word = '字符串'
sentence = "这是一个句子。"
paragraph = """这是一个段落,
可以由多行组成"""
#!/usr/bin/env python3
 
str='123456789'
 
print(str)                 # 输出字符串
print(str[0:-1])           # 输出第一个到倒数第二个的所有字符
print(str[0])              # 输出字符串第一个字符
print(str[2:5])            # 输出从第三个开始到第六个的字符(不包含)
print(str[2:])             # 输出从第三个开始后的所有字符
print(str[1:5:2])          # 输出从第二个开始到第五个且每隔一个的字符(步长为2)
print(str * 2)             # 输出字符串两次
print(str + '你好')        # 连接字符串
print('------------------------------')
print('hello\nrunoob')     # 使用反斜杠(\)+n转义特殊字符
print(r'hello\nrunoob')    # 在字符串前面添加一个 r,表示原始字符串,不会发生转义

结果

命令 备注 输出结果
print(str) # 输出字符串 123456789
print(str[0:-1]) # 输出第一个到倒数第二个的所有字符 12345678
print(str[0]) # 输出字符串第一个字符 1
print(str[2:5]) # <font color='red'>输出从第三个开始到第五个的字符</font> 345
print(str[2:]) # 输出从第三个开始后的所有字符 3456789
print(str[1:5:2]) # <font color='red'>输出从第二个开始到第五个且每隔一个的字符(步长为2)</font> 24
print(str * 2) # 输出字符串两次 123456789123456789
print(str + '你好') # 连接字符串 123456789你好
print('------------------------------') # 输出字符------------------------------ ------------------------------
print('hello\nYYDS') # 使用反斜杠()+n转义特殊字符 hello<br />YYDS
print(r'hello\nYYDS') # 在字符串前面添加一个 r,表示原始字符串,不会发生转义 hello\nYYDS

image-20230809220101958

7、print 输出

print 默认输出是换行的,如果要实现不换行需要在变量末尾加上 **end=""**。

#!/usr/bin/env python3
 
x="a"
y="b"
# 换行输出
print( x )
print( y )
 
print('---------')
# 不换行输出
print( x, end=" " )
print( y, end=" " )
print()

执行结果:

a
b
---------
a b

image-20230810092914413

8、import 与 from...import

在 python 用 import 或者 from...import 来导入相应的模块。

语法格式 说明
import somemodule 将整个模块(somemodule)导入
from somemodule import somefunction 从某个模块中导入某个函数
from somemodule import firstfunc, secondfunc, thirdfunc 从某个模块中导入多个函数
from somemodule import 将某个模块中的全部函数导入

1)导入 sys 模块

import sys
print('================Python import mode==========================')
print ('命令行参数为:')
for i in sys.argv:
    print (i)
print ('\n python 路径为',sys.path)

2)导入 sys 模块的 argv,path 成员

from sys import argv,path  #  导入特定的成员
 
print('================python from import===================================')
print('path:',path) # 因为已经导入path成员,所以此处引用时不需要加sys.path

9、命令行参数

很多程序可以执行一些操作来查看一些基本信息,Python可以使用-h参数查看各参数帮助信息:

$ python -h
usage: python [option] ... [-c cmd | -m mod | file | -] [arg] ...
Options and arguments (and corresponding environment variables):
-c cmd : program passed in as string (terminates option list)
-d     : debug output from parser (also PYTHONDEBUG=x)
-E     : ignore environment variables (such as PYTHONPATH)
-h     : print this help message and exit

[ etc. ]

总结

本文仅是跟着【菜鸟教程】网站学习做个记录,菜鸟教程记录的非常详细,自学/查资料非常推荐!

书写片面,纯粹做个记录,有错漏之处欢迎指正。

参考资料

Python3 基础语法 | 菜鸟教程 (runoob.com)

名称 时间
开始编辑日期 2023 年 08 月 09 日
最后编辑日期 2023 年 08 月 10 日