默认情况下,python3源码文件以UTF-8编码,所有字符串都是unicode字符串。
# -*- coding:utf-8 -*-当然你也可以为源码文件指定不同的编码:
# -*- coding:cp-1252 -*-上述定义允许在源文件中使用windows-1252字符集中的字符编码,对应适合语言为保加利亚语、白罗斯语、马其顿语、俄语、塞尔维亚语。
变量第一个字符必须是字母表中字母或下划线_。
变量命名的其他部分由字母、数字和下划线组成。
变量命名区分大小写,大小写敏感。
在python3中,可以用中文为变量名,非ASCII标识符也是允许的。
注意:日常开发中变量命名最好有一定含义,不要随意命名,有多个含义时用_分隔组成,可以提高代码规范性和可读性。
关键字也名保留字,我们不能把它们用作任何变量名称。python的标准库提供了一个keyword模板,可以输出当前版本所有的关键字:
lt = []for km in keyword.kwlist:lt.append(km)if len(lt) == 6:print(len(keyword.kwlist),len(lt),",".join(lt))lt = []
36 6 False,None,True,__peg_parser__,and,as36 6 assert,async,await,break,class,continue36 6 def,del,elif,else,except,finally36 6 for,from,global,if,import,in36 6 is,lambda,nonlocal,not,or,pass36 6 raise,return,try,while,with,yield
python中单行注释以#开头,实例如下:
#!/usr/bin/python3这行代码 #!/usr/bin/python3 是一个 Shebang(也称为 Hashbang),用于在 Unix/Linux 系统(windows系统会忽略这行)中指定脚本的解释器路径,然后直接运行脚本,尤其在自动化任务和系统管理中非常有用。
#!:Shebang 的固定开头,表示这是一个解释器指令。
/usr/bin/python3:Python 3 解释器的路径。在大多数 Unix/Linux 系统中,Python 3 解释器通常安装在 /usr/bin/python3,如果路径不在该路径可以用which python3查找正确的路径。
单行注释
# 第一个注释print("Hello,python!") # 第二个注释
注意:为了统一注释格式,一般在#后面需要空一格,不要太紧凑。
多行注释
可以用多个#号,还有一对''' '''和""" """。pycharm注释python的快捷键是ctrl+L
# 第一个注释# 第二个注释'''第三个注释第四个注释'''"""第五个注释第六个注释"""
python最具有特色的就是使用缩进来表示代码块,不需要使用大括号{}
缩进的空格数是可变的,但是同一个代码块语句的缩进空格数必须保持一致。示例如下:
if True:print ("True")else:print ("False")
以下代码最后一行语句缩进数的空格数不一致,会导致运行错误:
if True:print ("Answer")print ("True")else:print ("Answer")print ("False") # 缩进不一致,会导致运行错误
以上程序由于缩进不一致,执行后会出现类似以下错误:
File"test.py", line6print ("False") # 缩进不一致,会导致运行错误^IndentationError: unindentdoesnotmatchanyouterindentationlevel
注意:一般缩进是一个Tab键为一个单位
python通常是一行写完一条语句,但是如果语句很长,我们可以使用反斜杠()来实现多行语句,例如:
total = item_one+\item_two+\item_three
在[],{}或()中的多行语句,不需要使用反斜杠\,例如:
total = ['item_one', 'item_two', 'item_three','item_four', 'item_five']total = {'item_one', 'item_two', 'item_three','item_four', 'item_five'}total = ('item_one', 'item_two', 'item_three','item_four', 'item_five')
简短的语句也可以写在一行,每个语句用;隔开
a = 1;b = 2;c = 3注意:在pycharm中有语句的长度提示,超过了最好换行,为了方便阅读和pycharm解释
python中数字有四种类型:整数、布尔型、浮点数和复数。
int (整数), 如 1, 只有一种整数类型 int,表示为长整型,没有 python2 中的 Long。
bool (布尔), 如 True,False。
float (浮点数), 如 1.23、3E-2
complex (复数), 如 1 + 2j、 1.1 + 2.2j【科学计算、工程和数学领域中有广泛的应用】
python没有单独的字符类型,一个字符就是长度为1的字符串
字符串的表示用单引号、双引号都相同,也可以使用三引号指定多行字符串
word = '字符串'sentence = "这是一个句子"paragraph = """这是一个段落可以由多行组成"""
反斜杠可以用来转义,使用r可以让反斜杠不发生转义。如r"this is a line with \n",则\n不表示换行了而是字符串。【r指raw,即raw string】
字符串可以用 + 运算符拼接在一起,用 * 运算符重复在一起
字符串有两种索引方式,一种是从左往右以0开始,另一种是从右往左以-1开始
字符串可以覆盖变量值,但是不可以通过索引对其值直接修改
str1 = "a"str1 = "b"str1[0] = "c"#这里报错
TypeError: 'str' object does not support item assignment意思就是字符串对象不支持项目分配指的就是不支持修改其值
字符串的截取语法格式:变量【头下标:尾下标:步长】
步长指间隔几个字符取值组成新的字符串,头下标和尾下标指字符串的取值范围,不指定范围默认是全部范围str[:],不指定步长默认为1str[::1]。
如果步长为-1就是倒序取字符串的值str[::-1]
函数之间或类的方法之间用空行分隔,表示一段新的代码的开始。类和函数入口之间也用一行空行分隔,以突出函数入口的开始。
空行与代码缩进不同,空行并不是python语法的一部分。书写时不插入空行,python解释器运行也不会出错。但是空行的作用在于分隔两段不同功能或含义的代码,便于日后代码的维护或重构。
注意:空行也是程序代码的一部分。
基本用法
input([prompt])prompt:可选参数,用于显示提示信息
示例:
name = input("请输入你的名字:")print(f"你好,{name}")
输入类型强制转换
input()返回的始终是字符串类型。如果需要其他类型(如整数、浮点数),需要进行类型转换。
转整数
使用int()
age = int(input("请输入你的年龄: "))print(f"你明年将会是 {age + 1} 岁。")
转浮点数
使用float()
height = float(input("请输入你的身高(米): "))print(f"你的身高是 {height} 米。")
转列表
使用 split() 和类型转换:
numbers = input("请输入一组数字,用空格分隔: ")numbers_list = list(map(int, numbers.split()))print(f"你输入的数字列表是: {numbers_list}")
多行输入
input() 只能读取单行输入。如果需要多行输入,可以使用循环或文件读取。
lines = []print("请输入多行内容,输入 'exit' 结束:")while True:line = input()if line == "exit":breaklines.append(line)print("你输入的内容是:")print("\n".join(lines))
输入密码(隐藏输入)
from getpass import getpasspassword = getpass("请输入密码: ")print("密码已输入。")
python可以在同一行中使用多条语句,语句之间使用分号(;)分隔,以下是一个简单的实例:
#!/usr/bin/python3import sys; x = 'nowcoder'; sys.stdout.write(x+'\n')
或者使用交互式命令行执行,输出结果为
>>>import sys; x = 'nowcoder'; sys.stdout.write(x+'\n')nowcoder9
此处的9表示字符数。
缩进相同的一组语句构成一个代码块,我们称之代码组。
像if、while、def和class这样的复合语句,首行以关键字开始,以冒号( : )结束,该行之后的一行或多行代码构成代码组。
我们将首行及后面的代码组称为一个子句(clause)。
if expression : suiteelif expression : suiteelse : suite
注意:print默认输出是换行的,如果要实现不换行需要在变量末尾加上end="",默认end="\n"
#!/usr/bin/python3x="a"y="b"# 换行输出print( x )print( y )# 输出空白行print()print('---------')# 不换行输出print( x, end=" " )print( y, end=" " )
美化输出
prettytable 是一个用于生成美观的 ASCII 表格的库,支持多种自定义选项,包括表头、表尾、对齐方式等。
pip install prettytable==3.10.0from prettytable import PrettyTable#pip install prettytable==3.10.0# 创建一个 PrettyTable 对象table = PrettyTable()# 设置表头table.field_names = ["City name", "Area", "Population", "Annual Rainfall"]# 添加行table.add_row(["Adelaide", 1295, 1158259, 600.5])table.add_row(["Brisbane", 5905, 1857594, 1146.4])table.add_row(["Darwin", 112, 120900, 1714.7])# 设置列的对齐方式table.align["City name"] = "l"# 左对齐table.align["Area"] = "l"# 左对齐table.align["Population"] = "c"# 居中对齐table.align["Annual Rainfall"] = "l"# 左对齐# 打印表格print(table)
需要一个功能强大且支持自定义的表格打印库,prettytable 是一个很好的选择。
tabulate 是另一个用于美化打印表格的库,支持多种表格格式,如纯文本、HTML、Markdown 等。
pip install tabulate==0.9.0from tabulate import tabulate# pip install tabulate==0.9.0# 定义数据data = [ ["Adelaide", 1295, 1158259, 600.5], ["Brisbane", 5905, 1857594, 1146.4], ["Darwin", 112, 120900, 1714.7]]# 定义表头headers = ["City name", "Area", "Population", "Annual Rainfall"]# 打印表格print(tabulate(data, headers, tablefmt="grid"))
需要一个简单易用且支持多种格式的表格打印库,tabulate 是一个不错的选择。
pprint是python内置对json数据格式化输出
更多用法后续详细介绍
在 python 用 import 或者 from...import 来导入相应的模块。
将整个模块(somemodule)导入,格式为: import somemodule
从某个模块中导入某个函数,格式为: from somemodule import somefunction
从某个模块中导入多个函数,格式为: from somemodule import firstfunc, secondfunc, thirdfunc
将某个模块中的全部函数导入,格式为: from somemodule import *
很多程序可以执行一些操作来查看一些基本信息,Python可以使用-h参数查看各参数帮助信息:python -h