Python 零基础入门 | 输入的数字为什么不能直接算

【Python案例】数据换装 ------ 类型转换

案例需求

程序从外面拿到的数据(比如从键盘输入的数字),拿到手里时往往都是"文字",不能直接拿去计算,得先"换装"才行。下面用四小段代码,把最常用的四种"换装"方式各试一遍。请完成以下任务:

  1. 将字符串 "123" 转换成整数,保存到变量 n 中,并将变量 n 的值和数据类型打印输出;
  2. 将字符串 "3.14" 转换成浮点数,保存到变量 f 中,并将变量 f 的值和数据类型打印输出;
  3. 将整数 2024 转换成字符串,保存到变量 t 中,并将变量 t 的值和数据类型打印输出;
  4. 用 bool() 查看数字 0 和字符串 "hello" 的真假,将检查结果打印输出。

案例实现

第 1 步 :把字符串 "123" 先存进变量 s,再用 int() 把它转换成整数、保存到变量 n 中,最后把 n 的值和数据类型打印输出。字符串转整数用 int()。

python 复制代码
s = "123"
n = int(s)
print(n, type(n))

第 2 步 :将字符串 "3.14" 转换成浮点数,保存到变量 f 中,并将值和数据类型打印输出。字符串转浮点数用 float()。

python 复制代码
f = float("3.14")
print(f, type(f))

第 3 步 :将整数 2024 转换成字符串,保存到变量 t 中,并将值和数据类型打印输出。数字转字符串用 str()。

python 复制代码
t = str(2024)
print(t, type(t))

第 4 步 :bool() 用来测试"真假"。数字 0 是假,非空字符串是真。

python 复制代码
b1 = bool(0)
b2 = bool("hello")
print(b1, b2)

完整代码:

python 复制代码
s = "123"
n = int(s)
print(n, type(n))
f = float("3.14")
print(f, type(f))
t = str(2024)
print(t, type(t))
b1 = bool(0)
b2 = bool("hello")
print(b1, b2)

运行结果:

复制代码
123 <class 'int'>
3.14 <class 'float'>
2024 <class 'str'>
False True

案例解析

  • 数据类型转换语法 :int(数据)、float(数据)、str(数据)、bool(数据),括号里放要转换的内容,函数会把转换后的结果返回 出来。注意:返回的结果不会自动替换原来的数据,要把它存进变量 (例如 n = int("123"))才能继续使用。
  • 常见用途 :int("123") 把用户输入的文字变成能计算的数字;str(2024) 把数字变成字符串,方便和别的文字拼接。
  • 真假规则 :0、0.0、空字符串 ""、None、空列表 [] 都会被 bool() 判为 False,其他大多为 True。本章先记住 0 和 "" 这两个就够了,其余的先有个印象即可。
  • 易错点 :int("3.14") 会直接报错,因为带小数点的字符串不能一步转成整数。正确做法是分两步:先用 float("3.14") 转成浮点数,再用 int() 转成整数,也就是 int(float("3.14")),结果是 3(小数点后面的部分被直接舍去,不是四舍五入)。
  • 记忆口诀 :想变成谁,就用谁的名字把数据"包"起来------想变成整数就用 int() 包住数据,想变成字符串就用 str() 包住数据。

相关练习

一、题目

1.(选择题) 表达式 int("25") 的结果是(  )。

  • A. "25"
  • B. 25
  • C. 25.0
  • D. 程序报错

2.(填空题) 表达式 float("3.14") 的结果是 ________。

3.(判断题) 表达式 bool("") 的结果是 False。(  )

4.(简答题) 已知 s = "88",请写出代码:先把 s 变成整数,再乘以 2 并打印结果。

二、参考答案与解析

1. 答案:B

解析:int() 把字符串 "25" 转成整数 25。注意,结果不带引号,是数字类型,不是字符串类型。

2. 答案:3.14

解析:float() 把字符串形式的小数转成真正的浮点数,方便后续的计算。

3. 答案:正确(√)

解析:空字符串里"什么都没有",在布尔判断时当做假,所以结果是 False。有内容的字符串则当做 True。

4. 答案:

python 复制代码
n = int(s)
print(n * 2)

解析:字符串不能直接参与算术运算,必须先转成整数。转完再乘 2,输出 176。

声明:本文部分内容由人工智能辅助生成。

相关推荐
小oo呆2 小时前
【学习心得】Python多线程
python
星夜离尘566 小时前
MATLAB 工程实验:不等间隔流量积分,先把缺口与覆盖率说清楚
开发语言·matlab·时间戳·数据质量·数值积分
happylifetree6 小时前
Python70:核心语法-函数进阶-案例2
python
Ai-_Man6 小时前
Meta Muse还是不可以导出左侧所有对话,只能点进去单条内容导出,方法不对吗?
开发语言·人工智能·ai·小程序·c#·1024程序员节
梓豪csd6 小时前
消息订阅中心:谁该收到哪条通知
java·开发语言·人工智能·低代码·自动化·1024程序员节
王中阳Go6 小时前
两个入口答案不一致先别调模型:6 行入口口径对账表(附脚本)
人工智能·后端·python·大语言模型·1024程序员节
BK贝壳6 小时前
bool-hybrid-array 落盘我只认 .bha:用 Create_BHA / Ask_BHA 做布尔数组序列化
数据结构·python·numpy·1024程序员节
学逆向的7 小时前
C 枚举变量
c语言·开发语言·网络安全
Sakura_j_h_7 小时前
Python 在定时任务里输出 emoji,UnicodeEncodeError 从哪来
开发语言·字符编码·windows·python·定时任务
supabc1238 小时前
欧盟电子发票(XRechnung/Peppol/ZUGFeRD)踩坑记:用 Python 不装 Java 跑官方校验规则
xml·python·开源·电子发票·1024程序员节