脚本专家 发表于 2026-9-10 10:00:00

Python整型浮点型字符串类型判断与格式化输出教程

在Python脚本开发中,变量不需要提前声明类型,但变量关联的数据有类型。常见三类数据是 int、float、str。理解 type() 返回值、整型大数限制和字符串格式化,是写基础脚本、做数据转换时常用的技能。

一、用 type() 判断数据属于哪类

type() 返回数据的具体类型。字符串类型显示为 <class 'str'>,这是 string 的简写,不是 <class 'string'>。Python 中变量无类型,数据有类型。例如 a = 10,a 本身没有类型,但 a 关联的数据 10 是整型。把变量交给 type(),返回的是变量所对应数据的类型。


result1 = type('张三')
result2 = type(18)
result3 = type(72.5)
print(result1)# <class 'str'>
print(result2)# <class 'int'>
print(result3)# <class 'float'>

name = '张三'
age = 18
weight = 72.5
print(type(name))    # <class 'str'>
print(type(age))   # <class 'int'>
print(type(weight))# <class 'float'>


二、整型 int:无小数点,大数书写与 print 限制

整型就是没有小数点的数字,可以是正数、负数或 0。Python 整数可以任意大,上限取决于执行代码的计算机内存和处理能力。书写很大的数时,可用下划线分组,Python 会自动忽略,这种写法同样适用于浮点数,但需要 Python 3.6 及以上版本。


num1 = 10_000_000
print(num1)

a = 3 ** 2# 3的平方
b = 2 ** 3# 2的3次方
print(a)# 9
print(b)# 8


通过幂运算构造大整数再打印:


a = 9 ** 9999
print(a)


这时会报错,提示中包含 Exceeds the limit (4300 digits)。但这并不代表 Python 最大只能表示 4300 位的数。去掉 print 后,a 可以正常参与数学运算:


a = 9 ** 9999
b = a + 100


原因是调用 print(a) 时,Python 底层会把 a 转换成字符串类型再输出;从 Python 3.11 起,Python 对超大整数转换为字符串的长度进行了限制,默认位数是 4300 位。需要解除限制时,可以设置 sys.set_int_max_str_digits(0),其中 0 表示不作任何限制:


import sys
sys.set_int_max_str_digits(0)
x = 9 ** 9999
print(x)


整型基础案例:


age = 18
temp = -15
score = 0
salary = 300_000
house_price = 3_200_000
graduates = 12_000_000
print(salary, house_price, graduates)
a = 9 ** 9999


三、浮点型 float:小数点与科学计数法

浮点型就是带小数点的数字,3.14、-0.5、2.0 都属于浮点数。表示方式分为直接书写和科学计数法。


weight = 65.2
balance = 1425.58
out_temp = -25.2
price = 120.0

speed_of_sound = 3.4e+2       # 3.4乘以10的2次方
world_population = 7.8e9      # 7.8乘以10的9次方
distance_sun_earth = 1.496E8# 1.496乘以10的8次方
speed_of_light = 2.998E+8   # 2.998乘以10的8次方
one_ml = 1e-3               # 1乘以10的-3次方
one_mg = 1E-3               # 1乘以10的-3次方
print(one_ml, one_mg)


四、字符串 str:四种定义、格式化输出与转义

字符串需要用引号包起来。单引号和双引号写法等价,适合单行字符串;三个单引号和三个双引号可以直接换行,常用于多行字符串,也可作为多行注释或文档字符串。单引号、双引号不能直接换行,需要换行时可用圆括号。


message1 = '兮动人!'
message2 = "xdr!"
message3 = '''xdr630!'''
message4 = """云兮动人!"""


格式化输出有三种常见写法。第一种是用加号拼接,写起来麻烦,而且只能用于字符串之间拼接:


name = '张三'
gender = '男'
weight = 65.2
age = 12
info1 = '我叫' + name + ',我是' + gender + '生'


第二种是使用占位符:%s 占位字符串,%f 占位浮点数,%i 占位整数,%d 占位十进制整数;%s 是万能的,如果提供的数据不是字符串,Python 会把它转成字符串。


info2 = '我叫%s,我是%s生,我体重是%f,年龄是%d' % (name, gender, weight, age)


第三种是 f-string,这是目前 Python 最推荐的方式:


info3 = f'我叫{name},我是{gender}生,我体重是{weight},年龄是{age}'


占位符前方可用 m.n 的形式指定精度,例如:


info = '我叫%-4.1s,性别是%3.2s,体重是%-9.3f,年龄是%-6.4d' % (name, gender, weight, age)


字符串中有些字符不能直接写,例如换行、制表符、引号等,这时要用转义字符。常见测试代码:


print('在Python中,可以使用\'包裹一个字符串')
print("在Python中,可以使用\"包裹一个字符串")
print('注册会员需要以下信息:\n姓名\n年龄\n手机号')
print('D:\\nice')
print('helloo\b')
print('67%\r68%')
print('1234123412341234')
print('ab\tcd'.expandtabs(4))
print('abc\td'.expandtabs(4))
print('abcd\ta'.expandtabs(4))
print('我是\t中文'.expandtabs(4))
print('姓名\t性别\t年龄')
print('张三\t男\t\t18')
print('李四\t女\t\t25')
print('王五\t男\t\t32')


其中 \t 表示水平制表符,一个制表位具体是几位并不确定,可以通过字符串后面的 .expandtabs() 指定;\r 让光标回到本行开头并覆盖输出;\b 删除前一个字符;\\ 用于输出反斜杠。掌握整型、浮点型、字符串的类型判断、格式化输出和转义规则后,脚本中的字符串拼接、格式化和类型转换会更清晰,也能减少隐式转换带来的排查成本。

热心网友1 发表于 2026-9-10 19:30:00

Re: Python整型浮点型字符串类型判断与格式化输出教程

这篇整理挺适合入门复习的。type() 那部分把“变量无类型、数据有类型”讲明白了,str 显示为 这个细节也容易踩坑。整型大数里,9**9999 能参与运算但 print 会受 4300 位字符串转换限制,以及 sys.set_int_max_str_digits(0) 的用法,很实用。浮点型的科学计数法写法、字符串四种定义,还有加号、% 占位符和 f-string 三种格式化对比,都挺清楚。转义字符那几行例子也很适合直接敲一遍看输出。感谢分享,期待后续把转义部分补完整。

热心网友1 发表于 2026-9-10 19:30:00

Re: Python整型浮点型字符串类型判断与格式化输出教程

感谢分享,内容整理得很全也很适合入门。type() 那段讲“变量无类型、数据有类型”很关键,str 返回的是 class 'str' 这个点也很容易搞混。整型里用下划线分组、9 的 9999 次方参与运算没问题但 print 会触发 4300 位限制,以及 sys.set_int_max_str_digits(0) 解除限制,这个细节很实用。浮点型的科学计数法、字符串四种引号写法、加号拼接、百分号占位和 f-string 的对比都挺清楚,%s 万能占位和 m.n 精度也总结得到位。转义字符的例子很有代表性。不过帖子最后一行好像没写完,期待把 expandtabs 那部分补完整。

热心网友3 发表于 2026-9-10 19:40:00

Re: Python整型浮点型字符串类型判断与格式化输出教程

楼主这篇整理得很清楚,特别适合刚接触 Python 脚本的人。type() 返回 而不是 这点讲得很到位,变量无类型、数据有类型的说法也容易理解。整型部分把下划线分组、幂运算构造大整数,以及 print 超大整数受 4300 位限制、用 sys.set_int_max_str_digits(0) 解除限制讲得很实用。浮点型的科学计数法示例也很直观。字符串格式化三种方式对比清晰,f-string 确实最推荐。最后转义字符那几行好像没贴完,expandtabs 的例子断在 print('abcd\ta 那里,有空可以补全一下。感谢分享。
页: [1]
查看完整版本: Python整型浮点型字符串类型判断与格式化输出教程