Python语法特点

单行注释# 注释内容多行注释''' 注释内容 '''""" 注释内容 """

使用三引号作为注释时,三引号必须成对出现,否则将出现下面报错: SyntaxError: unterminated triple-quoted string literal

Python是通过缩进半角冒号区分代码之间的层次,编码时建议严格遵循PEP8编码规范,增加代码的可读性。

同级代码的缩进量必须相同,否则将会抛出SyntaxError异常

我了解了一些命名规范:

  • 函数、类属性及方法、模块名:全小写且尽量短小,可使用下划线
  • 包名:全小写且尽量短小,避免使用下划线
  • 类名:采用单词首字母大写的风格
  • 模块内部的类名:采用下划线+首字母大写的类名
  • 使用双下划线开头的实例变量或方法是类私有

Python中的变量

保留字:被Python赋予特定意义的单词,这些单词不能充当标识符。可使用下面语句查询保留字的内容:

import keyword
print(keyword.kwlist)

标识符:标识变量、函数、类、模块和其他对象的名称,其命名规则如下:

  1. 由字母、数字、下划线组成
  2. 不能以数字开头
  3. 区分大小写

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或10b / 0B0b1010011
八进制0~70o / 0O-0o123
十进制0~9---83
十六进制09和AF0x / 0X0x53

不能以“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时,输出值强制写入文件。

提示:sepend的参数必须是字符串;或者为None,为None时意味着使用其默认值sependfileflush必须以命名参数方式传参,否则会被当作需要输出的对象。如果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💕👌❤️😁👍")

输出结果如下图所示。

Pasted image 20250812091323

调用系统提供的字符映射表,也可以在Pycharm下输出特殊符号和标志。

win+R键,输入charmap,调出字符映射表。单击想要插入到程序中的特殊字符,特殊符号将放大显示。记住放大符号旁边的字符码。如要输入,它的字符码为0x43,在0x43之间加入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))

输出结果为:←

Pasted image 20250812092303

锦囊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位编号,如图所示。

Pasted image 20250812094041

如果要循环输出固定位数的数字编号,该怎么输出呢?只需使用循环语句,即可方便的输出,代码如下:

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')   # 绿色前景色输出名言,背景色为紫色

程序运行结果如图所示。

Pasted image 20250812095053

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')  # 设置文字红色前景色,蓝色背景色显示

程序的运行结果如图所示。

Pasted image 20250812095212

Pasted image 20250812095901

锦囊09  对齐输出数据

对齐数据可以使用rjustljustcenter来实现。也可以使用格式化函数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])))

运行程序,输出效果如图所示。

Pasted image 20250812100720

上面输出当中,采用了左对齐输出,输出时使用制表符\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])))

运行程序,输出效果如图所示。

Pasted image 20250812101122

场景二:中英文多列对齐输出

中英文多列对齐输出德国、法国、英国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])

运行程序,输出效果如图所示。

Pasted image 20250812101356

如果数据中包含中文,则输出的列数据无法排列整齐。使用对齐函数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)

运行程序,输出效果如图所示。

Pasted image 20250812101529

场景三:实现程序主界面

利用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""")

运行程序,将输出如图所示的程序运行主菜单。

Pasted image 20250812101746

场景四:分行输出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)])

程序的运行结果如图所示。

Pasted image 20250812101949