Python语法特点
单行注释:# 注释内容多行注释:''' 注释内容 ''' 或 """ 注释内容 """
使用三引号作为注释时,三引号必须成对出现,否则将出现下面报错: SyntaxError: unterminated triple-quoted string literal
Python是通过缩进和半角冒号区分代码之间的层次,编码时建议严格遵循PEP8编码规范,增加代码的可读性。
同级代码的缩进量必须相同,否则将会抛出SyntaxError异常
我了解了一些命名规范:
- 函数、类属性及方法、模块名:全小写且尽量短小,可使用下划线
- 包名:全小写且尽量短小,避免使用下划线
- 类名:采用单词首字母大写的风格
- 模块内部的类名:采用下划线+首字母大写的类名
- 使用双下划线开头的实例变量或方法是类私有的
Python中的变量
保留字:被Python赋予特定意义的单词,这些单词不能充当标识符。可使用下面语句查询保留字的内容:
import keyword
print(keyword.kwlist)
标识符:标识变量、函数、类、模块和其他对象的名称,其命名规则如下:
- 由字母、数字、下划线组成
- 不能以数字开头
- 区分大小写
Python是一种动态类型的语言,变量的类型可以随时变化。为变量赋值可以通过=实现,例如:my_name = "WuChen" ;若要同时输出多份内容,则可以在相邻两内容用,间隔,例如:print(value1,value2,value3,...);在python中可以使用内置函数type(被查找类型的数据)返回变量类型;可以使用内置函数id(被查找地址的值名称)返回变量所指的内存地址。
name = "Liu"
ID = 2048
print(type(name),type(ID)) # <class 'str'> <class 'int'>
num1 = num2 = 1024
print(id(num1),id(num2)) # 输出内容为:2536300786608 2536300786608
基本数据类型
python中的变量无类型,但变量所存储的数据具有类型
数字型
| 整数 | 组成 | 开头 | 示例 |
|---|---|---|---|
| 二进制 | 0或1 | 0b / 0B | 0b1010011 |
| 八进制 | 0~7 | 0o / 0O | -0o123 |
| 十进制 | 0~9 | --- | 83 |
| 十六进制 | 0 | 0x / 0X | 0x53 |
不能以“0”作为十进制数的开头(0除外)
浮点数由整数部分和小数部分组成,也可以使用科学计数法表示。在使用浮点数进行计算时,有一个特例体现了小数位数不确定的情况,特例代码如下:
result = 0.1 + 0.2
print(result) # 输出结果为0.30000000000000004
字符串型
通常使用单引号' '、双引号" "或者三引号""" """或''' '''括起来,其中单引号和双引号的字符序列必须在一行上。需要表示复杂的字符串时,还可以进行引号嵌套,但是,字符串开始和结尾使用的引号形式必须一致。
# 使用单引号和双引号字符序列都必须在同一行
title = '我的座右铭'
label = "努力学习,顶峰相见"
# 三引号字符串序列何以分布在多行上
entry = """书山有路勤为径,
学海无涯苦作舟"""
print(title,'\n',label,'\n',entry)
str()函数用于将数值转换为字符串。
在字符串定界符的前面加上字母
r或者R,那么该字符串将原样输出,其中的转义字符将不再进行转义输出,例如:print(r"失望之酒\n机会之杯")将直接输出“失望之酒\n机会之杯”。
布尔类型
用来表示真或假的值,所有的Python对象都可以进行真值测试。True 为 1,False 为 0 其中下面的4种情况为假:
- False或None
- 数值中的零,包括0、0.0、虚数0
- 空序列,包括字符串、空元组、空列表、空字典
- 自定义对象的实例,该对象的__bool__方法返回False,或者__len__方法返回0
数据类型转换
| 函数 | 作用 |
|---|---|
| int(x) | 将x转换成整数类型 |
| float(x) | 将x转换成浮点数类型 |
| complex(real,imag) | 创建一个复数 |
| str(x) | 将x转换为字符串 |
| repr(x) | 将x转换为表达式字符串 |
| eval(str) | 计算在字符串中的有效Python表达式,并返回一个对象 |
| chr(x) | 将整数x转换为一个字符 |
| ord(x) | 将一个字符x转换为它对应的整数值 |
| hex(x) | 将一个整数x转换为一个十六进制的字符串 |
| oct(x) | 将一个整数x转换为一个八进制的字符串 |
| bin(x) | 将一个整数x转换为一个二进制的字符串 |
基本输入和输出
Python中可以通过内置函数input()可以接收用户通过键盘输入的内容,基本用法如下:
entry = input()
value = int(input()) # 若想要接收整型,则需要对其进行整型转换
默认情况下,使用内置函数print()可以将结果输出在标准控制台上,语法为:print(输出内容);输出内容可以是数字和字符串,这类内容将直接输出,也可以是包含运算符的表达式,此类内容将计算结果输出。
name = "张三"
print("我的名字是" + name)
'''print("变量1" if 条件 else "变量2") '''
print(a if a>b else b) # 条件为真返回a,否则返回b
Python中每一条
print()语句输出后都会自动进行换行,若不想让其换行,可以使用end=''来指定结束符,例如:print("Hello World",end=" ")表示输出Hello World并且以空格作为结束符。
在输出时,还可以把结果输出到指定文件中。例如:
# 将“Hello World”输出到指定的文件“D://Myfile/txt/demo.txt”中
fp = open("D://Myfile/txt/demo.txt","a+") # 打开文件
print("Hello World",file = fp) # 输出到文件
fp.close() # 关闭文件
pprint()格式化输出函数
pprint模块提供的pprint()函数,该函数全称 data pretty printer ,可以将输出的结果变得更加美观。
# 使用pprint()函数输出数据时,需要先导入pprint模块中的pprint()函数
from pprint import pprint
dic = {
"张三":{"age":"18","sex":"boy","address":"TianJin"},
"李四":{"age":"19","sex":"girl","address":"BeiJing"},
"王五":{"age":"20","sex":"boy","address":"HeNan"}
}
以上我定义了一个嵌套类型的字典,接下来我分别使用不同的方式进行输出,看看他们的效果:
print(dic) # 默认输出
"""
{'张三': {'age': '18', 'sex': 'boy', 'address': 'TianJin'}, '李四': {'age': '19', 'sex': 'girl', 'address': 'BeiJing'}, '王五': {'age': '20', 'sex': 'boy', 'address': 'HeNan'}}
"""
pprint(dic) # 默认结构化输出
"""
{'张三': {'address': 'TianJin', 'age': '18', 'sex': 'boy'},
'李四': {'address': 'BeiJing', 'age': '19', 'sex': 'girl'},
'王五': {'address': 'HeNan', 'age': '20', 'sex': 'boy'}}
"""
pprint(dic, width = 40) # 在结构化输出的同时设置输出时每行的最大字符数
"""
{'张三': {'address': 'TianJin',
'age': '18',
'sex': 'boy'},
'李四': {'address': 'BeiJing',
'age': '19',
'sex': 'girl'},
'王五': {'address': 'HeNan',
'age': '20',
'sex': 'boy'}}
"""
进阶版输出
参数介绍
print()函数的语法格式如下:
print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)
参数说明:
value:表示要输出的值;可以是数字、字符串、各种类型的变量等;…:值列表,表示可以一次性打印多个值;输出多个值时,需要使用“,”(英文半角的逗号)分隔,打印出来各个值之间默认用空格隔开;sep:表示打印值时,各个值之间的间隔符,默认值是一个空格,可以设置为其他的分隔符;end:表示打印完最后一个值需要添加的字符串,用来设定输出语句以什么结尾,默认是换行符\n,即打印完会跳到新行,可以换成其他字符串,如end='\t'或end=' '等,以实现不换行输出;file:表示输出的目标对象,可以是文件也可以是数据流,默认是sys.stdout。可以设置“file = 文件储存对象”,把内容存到该文件中;flush:表示是否立刻将输出语句输出到目标对象,flush值为False或者True,默认flush=False,表示输出值会保存在缓存中;当flush=True时,输出值强制写入文件。
提示:
sep和end的参数必须是字符串;或者为None,为None时意味着使用其默认值。sep、end、file、flush都必须以命名参数方式传参,否则会被当作需要输出的对象。如果print()函数不传递任何参数,将会输出end参数的默认值,即打印一个空行。
锦囊01 输出字符串
字符串可以直接输出,也可以和数字、运算符等形成表达式进行输出。示例代码如下:
print() # 输出一个空行
print('') # 输出一个空行
# 使用三引号可多行输出字符,如三行输出的服务器登录界面
print(''' 登录服务器
管理员:___________
密 码:___________ ''' ) # 字符最前和最后用三引号
运行结果如下:
登录服务器
管理员:___________
密 码:___________
print("没有伟大的愿望,就没有伟大的天才!") # 使用双引号将字符串括起来
运行结果如下:
没有伟大的愿望,就没有伟大的天才!
print('go big or go home') # 使用单引号将字符串括起来
运行结果如下:
go big or go home
print('go','big','or','go','home') # 字符之间用','间隔,则字符串用空格连接
运行结果如下:
go big or go home
print('go' 'big' 'or' 'go' 'home') # 字符之间不用','间隔,则字符串无空格连接
运行结果如下:
Gobigorgohome
print('go'+ 'big'+ 'or'+'go'+'home') # 用加号“+” 连接输出字符串
运行结果如下:
Gobigorgohome
print('www','mingrisoft','com',sep='.') # 设置间隔符,字符之间用'.'间隔
运行结果如下:
www.mingrisoft.com
print('2020','7','24',sep='-') # 设置间隔符,字符之间用'-'间隔
运行结果如下:
2020-7-24
print(50 * '= ') # 一次输出多个字符,使用数字、运算符和字符串
运行结果如下:
===================================================================
# 使用chr()函数,根据字符的ASCII值,输出字符
print(chr(65)) # 大写字母的ASCII值为65~90
运行结果如下:
A
print(chr(97)) # 小写字母的ASCII值为97~122
运行结果如下:
a
print(chr(8544),chr(8545),chr(8546),chr(8547))
运行结果如下:
Ⅰ Ⅱ Ⅲ Ⅳ
# 使用ord()函数将字符转换为对应的整数
print(ord('生'),ord('化'),ord('危'),ord('机'))
运行结果如下:
29983 21270 21361 26426
锦囊02 输出数值
数值类型可以直接输出,但使用“+”连接数值和其他数据类型时,系统会默认为是加法计算,会报错。可以使用“,”连接,或者将数值作为字符串来处理,两端加单引号或双引号。示例代码如下:
print(1314) # 直接输出整数,可不带双引号或单引号。输出结果:1314
print(12.22) # 直接输出浮点数。输出结果:12.22
print(10 / 3) # 可以包含算术表达式,输出运算结果为:3.3333333333333335
print(100 * 3.13 + 60) # 可以包含算术表达式,输出运算结果为:373
print(2, 0, 2, 0) # 使用“,”连接要输出的数值,中间用空格连接。输出结果:2 0 2 0
print(192, 168, 1, 1, sep='.') # 使用“.”连接输出数值,数值间用“.”间隔。输出结果:192.168.1.1
print("广州恒大" + 43) # 不能直接使用“+”连接字符串和数值,会报错。异常信息为:TypeError: can only concatenate str (not "int") to str
print("广州恒大" + str(43)) # 使用“+”连接字符串和数值时,数值要转换为字符串。输出结果:广州恒大43
print("广州恒大", 43) # 使用“,”连接字符串和数值,字符串和数值用空格分隔。输出结果:广州恒大 43
print("%e" % 120563332111098) # 使用操作符"%e"%格式化数值为科学记数法。输出结果:1.205633e+14
锦囊03 输出变量
字符串、数值型、布尔型、列表、字典等各种变量都可以直接输出。示例代码如下:
stra= 'go big or go home' # 定义一个字符串变量stra
print(stra) # 输出变量stra的值
运行结果如下:
go big or go home
num = 27 # 定义一个数值型变量num
print(num) # 输出变量num的值
运行结果如下:
27
stra= '你若盛开' # 定义字符串变量stra
strb= '蝴蝶自来' # 定义字符串变量strb
print(stra,strb) # 使用“,”连接变量stra和strb,中间用空格分隔
print(stra +'\n' + strb) # 使用'\n'连接变量stra和strb,换行分隔
print(stra + strb) # 使用“+”连接变量stra和strb,直接连接无空格
运行结果如下:
你若盛开 蝴蝶自来
你若盛开
蝴蝶自来
你若盛开蝴蝶自来
print(stra +'\n' , strb) # 添加'\n'换行后,使用“,”连接的字符串前面仍然有一个空格
运行结果如下:
你若盛开
蝴蝶自来
name = ['杨过','临安','1224','小龙女']
print(name)
print('--'.join(name)) # 使用“--”连接列表内数据
print(' '.join(name)) # 使用空格“ ”连接列表内数据
print(''.join(name)) # 直接连接列表内数据
运行结果如下:
['杨过', '临安', '1224', '小龙女']
杨过--临安--1224--小龙女
杨过 临安 1224 小龙女
杨过临安1224小龙女
word = '世界那么大,'
name= '黄蓉'
how= '想出去看看!!'
print(word, name, how) # 用“,”连接变量,中间用空格分隔
print(word, name, how,sep='.') # 设置间隔符为“,”
print(word, name, how,sep='****') # 设置间隔符为“****”
运行结果如下:
世界那么大, 黄蓉 想出去看看!!
世界那么大,.黄蓉.想出去看看!!
世界那么大,****黄蓉****想出去看看!!
word = ["南京","苏州","上海","杭州","宁波"]
for item in word: # 遍历列表
print(item) # 输出每个列表元素
运行结果如下:
南京
苏州
上海
杭州
宁波
for item in word: # 输出列表变量的数据到一行
print(item + ">>",end="") # 元素之间用“>>”连接
运行结果如下:
南京>>苏州>>上海>>杭州>>宁波>>
team="广州恒大"
points=63
print (team,points) # 使用“,”可以直接连接字符串变量和数字变量
# 使用“+”连接字符串变量和数值变量前,必须先格式化数字变量为字符串
print (team + str(points))
运行结果如下:
广州恒大 63
广州恒大63
锦囊04 特殊文字、符号、标志输出
Windows 10提供的表情包(切换到微软输入法,再通过快捷键Ctrl+Shift+B可以调出表情包)提供了大量图标和特殊符号,在PyCharm下可使用大部分表情包,但是在Python自带的IDE中只能使用部分特殊字符。
在IDLE中,利用Windows 10表情包输入特殊符号,代码如下:
print("😘😊🤣😍😒\n💕👌❤️😁👍")
输出结果如下图所示。

调用系统提供的字符映射表,也可以在Pycharm下输出特殊符号和标志。
按win+R键,输入charmap,调出字符映射表。单击想要插入到程序中的特殊字符,特殊符号将放大显示。记住放大符号旁边的字符码。如要输入
,它的字符码为0x43,在0x和43之间加入f0(零),即0xf043,然后就可以通过chr函数进行输出。代码如下:
print(chr(0xf043)) #0xf043是16进制数
输出结果为:
#直接使用字符集的编码,输出多个特殊符号
print(chr(0xf021),chr(0xf035),chr(0xf046),chr(0xf051),chr(0xf067),chr(0xf0e5),chr(0xf0f2))
输出结果为:
for i in range(0xf035,0xf045): #设置字符集编码的区间,输出多个特殊符号
print(chr(i),end=",")
输出结果为:
如果知道十进制字符编码的值也可以很方便的输入特殊字符。如要输入“←”,只要知道该符号的十进制字符编码“8592”,具体特殊字符编码十进制对照表如表1、表2所示。编写代码:
print(chr(8592))
输出结果为:←

锦囊05 将多次输出内容到一行
Python中,print()函数默认输出结束后以换行结束,即end的默认值是换行符\n,打印完会跳到新行。如果打印完成不换行,只需将end设置成其他字符串,如end='\t' 、end=' '或《等字符。下面是将数字0~9输出到一行显示,代码如下:
for x in range(0, 10): # 设置输出内容区间为0~9
print(x, end=' ') # 输出数字用空格间隔输出到一行
运行结果如下:
0 1 2 3 4 5 6 7 8 9
for x in range(0, 10): # 置输出内容区间为0~9
print(x, end='+') # 输出数字用加号连接
print("? = 100") # 输出结果和原输入内容形成计算题
运行结果如下:
0+1+2+3+4+5+6+7+8+9+? = 100
锦囊06 指定位数编号输出
zfill()函数可按指定位数输出固定位数的数据编号,如将输入的数字格式化为5位编号输出,代码如下:
instr=input('请输入一个数字:')
print (instr.zfill(5)) # 输出5位数字编号
运行程序,输入一个数字,将会格式化为5位编号,如图所示。

如果要循环输出固定位数的数字编号,该怎么输出呢?只需使用循环语句,即可方便的输出,代码如下:
for i in range(1,20): # 设置输出区间为1~19
n=str(i) # 将数字转为字符串
s = n.zfill(3) # 将格式化的编号赋值给s
print (s) # 输出s
运行结果如下:
001
002
003
…
除了zfill()函数,format()函数也可以实现强大的格式化输出,如:
instr='112'
print (format(instr,'0>5')) # 输出5位数字编号
print (format(instr,'*>5')) # 输出5位字符串,空位用*填充
print (format(instr,'>5')) # 输出5位字符串,空位用空格填充
运行结果如下:
00112
**112
112
锦囊07 进制输出
输出进制数可以采用操作符、进制转换函数和格式化函数format()来实现。下面通过代码与注释介绍应用。
x=112
print("%o"%x) # 使用操作符输出八进制数
print("%x"%x) # 使用操作符输出十六进制数
print("nHex = %x,nDec = %d,nOct = %o" %(x,x,x)) # 输出十六进制、十进制、八进制数
print(bin(x)) # 使用bin()函数输出二进制数
print(oct(x)) # 使用oct()函数输出八进制数
print(hex(x)) # 使用hex()函数输出十六进制数
运行结果如下:
160
70
nHex = 70,nDec = 112,nOct = 160
0b1110000
0o160
0x70
x = 112
print("{0:d}".format(x)) # 使用format函数输出十进制数
print("{0:x}".format(x)) # 使用format函数输出十六进制数
print("{0:o}".format(x)) # 使用format函数输出八进制数
print("{0:b}".format(x)) # 使用format函数输出二进制数
print("int: {0:d}; hex: {0:x}; oct: {0:o}; bin: {0:b}".format(x)) #综合输出进制数
# 综合输出带符号的各进制数
print("二进制: {0:#b}; 八进制: {0:#o} ;十进制: {0:#d}; 十六进制: {0:#x}".format(x))
运行结果如下:
112
70
160
1110000
int: 112; hex: 70; oct: 160; bin: 1110000
二进制: 0b1110000; 八进制: 0o160 ;十进制: 112; 十六进制: 0x70
锦囊08 输出彩色文字或背景
在PyCharm下要输出要输出彩色,可以在输出前设置显示方式,格式为:\033[显示方式;前景色;背景色m。显示方式,前景色,背景色是可选参数,可以只写其中的某一个;显示方式、前景色、背景色如图所示。
print('\033[1;31m Stay hungry,Stay foolish!\033[0m') # 红色前景色输出名言
print('\033[1;32;45m 求知若饥,虚心若愚!\033[0m') # 绿色前景色输出名言,背景色为紫色
程序运行结果如图所示。

print('go big or go\033[1;35m home \033[0m!') # 设置文字中home 紫色前景色显示
# 设置文字中home绿色前景色,黄色背景色显示
print('go big or go\033[1;32;43m home \033[0m!')
print('\033[1;31;44mgo big or go home \033[0m') # 设置文字红色前景色,蓝色背景色显示
程序的运行结果如图所示。


锦囊09 对齐输出数据
对齐数据可以使用rjust、ljust和center来实现。也可以使用格式化函数format()实现,下面通过代码和注释来实现。
team="格林兰岛"
print(team.ljust(10)) #左对齐字符串,用空格号占位
print(team.ljust(10,'*')) #左对齐字符串,用*号占位
print(team.rjust(10,'*')) #右对齐字符串,用*号占位
print(team.rjust(10)) #右对齐字符串,用空格号占位
print(team.center(10)) #中间对齐字符串,用空格号占位
print(team.center(10,'*')) #中间对齐字符串,用*号占位
运行结果如下:
格林兰岛
格林兰岛******
******格林兰岛
格林兰岛
格林兰岛
***格林兰岛***
s="多特蒙德"
print(format(s,'*>20')) # 右对齐字符串,“*”为号占位符,“>”为右对齐符号,20宽度
print(format(s,'#<20')) # 左对齐字符串,“#”为号占位符,“<”为左对齐符号,20宽度
print(format(s,' ^20')) # 中间对齐字符串,空格“ ”为占位符,“^”对齐符号,20宽度
运行结果如下:
****************多特蒙德
多特蒙德################
多特蒙德
car=[ [1,"奔驰",489163],[2,"宝马",455051] ,[3,"奥迪",445300]]
for item in car: # 循环读取列表数据
tup='{0:0>3}\t{1:*^12}\t{2:$>12.2f}' # 设置对其格式和占位符
print(tup.format(item[0],item[1],float(item[2]))) # 输出数据未设置格式
运行结果如下:
001 *****奔驰***** $$$489163.00
002 *****宝马***** $$$455051.00
003 *****奥迪***** $$$445300.00
锦囊10 输出内容到文件
设置参数file为目标文件名称,即可输出需要输出的内容到文件。代码如下:
fp = open('mingrisoft.txt','a+') # 'a+'以读写模式打开文件
text="go big or go home"
print(text,file=fp) # 输出到文件中
fp.close()
执行上面的代码后,将在程序所在目录下生成一个名称为mingrisoft.txt的文件,该文件的内容为文字“go big or go home”。
场景一:输出嵌套列表的数据
对于复杂嵌套列表,如何格式化输出对应的数据呢?可以利用for循环读取数据,然后进行格式化处理,即可实现嵌套列表的格式化输出。代码如下:
college=['1,哈佛大学,Harvard University,美国,100','2,斯坦福大学,Stanford University,美国,76.5','3,剑桥大学,University of Cambridge,英国,70.9','4,麻省理工学院,Massachusetts Institute of Technology,美国,70.4','5,加州大学-伯克利,University of California Berkeley,美国,69.1']
print("{0:<3}\t{1:<12}\t{2:<31}\t{3:<4}\t{4:<6}".format('排名','中文名称','英文名称','国家','分数'))
for item in college:
line=item.split(',')
tupl = '{0:0>3}\t{1:<12}\t{2:<38}\t{3:<4}\t{4:>6.2f}'
print(tupl.format(line[0],line[1],line[2],line[3],float(line[4])))
运行程序,输出效果如图所示。

上面输出当中,采用了左对齐输出,输出时使用制表符\t进行对齐。如果要采用中间对齐方式,会出现对齐效果不佳的情况,这是因为中文字符和英文占据的宽度不同。空格采用中文的空格,可以很好地输出效果。
college=['1,哈佛大学,Harvard University,美国,100','2,斯坦福大学,Stanford University,美国,76.5','3,剑桥大学,University of Cambridge,英国,70.9','4,麻省理工学院,Massachusetts Institute of Technology,美国,70.4','5,加州大学-伯克利,University of California Berkeley,美国,69.1']
chn = chr(12288)
print(chn)
tupl1='{0:<3}\t{1:'+chn+'^10}\t{2:^30}\t{3:^6}\t{4:^6}'
print(tupl1.format('排名','中文名称','英文名称','国家','分数'))
for item in college:
line=item.split(',')
tupl2 = '{0:0<3}\t{1:'+chn+'^10}\t{2:^38}\t{3:^6}\t{4:6.2f}'
print(tupl2.format(line[0],line[1],line[2],line[3],float(line[4])))
运行程序,输出效果如图所示。

场景二:中英文多列对齐输出
中英文多列对齐输出德国、法国、英国2018年汽车销量数据。读取多个列表的数据,对数据输出时,如果进行格式化处理,输出不对齐,影响输出效果。代码如下:
gem=[["大众",643518],["奔驰",319163],["宝马",265051],["福特",252323],["雪铁龙",227967],["奥迪",255300]]
fra=[["雪铁龙", 698985],["雷诺",547704],["大众",259268],["福特",82633],["宝马",84931],["奔驰",73254]]
eng=[["福特",254082],["大众",203150],["雪铁龙",177298],["奔驰",172238],["宝马",172048],["奥迪",143739]]
for item1,item2,item3 in zip(gem,fra,eng):
print(item1[0],item1[1]," ",item2[0],item2[1]," ",item3[0],item3[1])
运行程序,输出效果如图所示。

如果数据中包含中文,则输出的列数据无法排列整齐。使用对齐函数ljust()对数据进行居左对齐显示,也无法对齐数据。因为中文占据的字符长度与英文不同,此时可以使用制表符\t来进行对齐输出。代码如下:
gem=[["大众",643518],["奔驰",319163],["宝马",265051],["福特",252323],["雪铁龙",227967],["奥迪",255300]]
fra=[["雪铁龙", 698985],["雷诺",547704],["大众",259268],["福特",82633],["宝马",84931],["奔驰",73254]]
eng=[["福特",254082],["大众",203150],["雪铁龙",177298],["奔驰",172238],["宝马",172048],["奥迪",143739]]
for item1,item2,item3 in zip(gem,fra,eng):
item11 = item1[0].ljust(8)
item12 = str(item1[1]).ljust(8)
item21 = item2[0].ljust(8)
item22 = str(item2[1]).ljust(8)
item31 = item1[0].ljust(8)
item32 = str(item3[1]).ljust(8)
print(item11 +"\t",item12+"\t"," ",item21+"\t",item22+"\t"," ",item31+"\t",item32)
运行程序,输出效果如图所示。

场景三:实现程序主界面
利用print函数,可以输出程序界面,代码如下:
print("""\033[1;35m
**************************************************************** 企业编码生成系统
**************************************************************** 1.生成6位数字防伪编码 (213563型)
2.生成9位系列产品数字防伪编码(879-335439型)
3.生成25位混合产品序列号(B2R12-N7TE8-9IET2-FE35O-DW2K4型)
4.生成含数据分析功能的防伪编码(5A61M0583D2)
5.半智能防伪码自动生成(按指定样式数量自动生成)
6.企业粉丝防伪码抽奖
0.退出系统
================================================================ 说明:通过数字键选择菜单
================================================================\033[0m""")
运行程序,将输出如图所示的程序运行主菜单。

场景四:分行输出K3国际列车的站名
如果字符串过长,希望多行显示,可以通过切片技术实现多行的输出,如下代码,设置width变量的值,即可实现对K3国际列车的站名多行输出。代码如下:
k3='北京、张家口南、集宁南、朱日和、二连、扎门乌德、赛音山达、乔伊尔、乌兰巴托、宗哈拉、达尔汗、苏赫巴托、多卓尔内、纳乌什基、吉达、乌兰乌德、斯柳江卡、伊尔库茨克、集马、尼日涅乌丁斯克、伊兰斯卡雅、克拉斯诺亚尔斯克、马林斯克、泰加、新西伯利亚、巴拉宾斯克、鄂木斯克、伊希姆、秋明、斯维尔德洛夫斯克、彼尔姆、巴列集诺、基洛夫、高尔基、弗拉基米尔、莫斯科'
width=22
len1=0
k3line=""
while len(k3)>width:
k3line=k3[0:width]
k3=k3[width:len(k3)]
print(k3line)
print(k3[0:len(k3)])
程序的运行结果如图所示。
