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。

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

相关推荐
特立独行的猫A4 小时前
用仓颉语言 cj-tauri 框架,五分钟给娃做了个鸿蒙形近字游戏
java·后端·python
大可不必了9 小时前
03 函数定义和调用
开发语言·python
I_belong_to_jesus9 小时前
C++关于分支预测的优化1
开发语言·c++·算法
承渊政道10 小时前
【Python编程—从入门到实践】(记分与闯关:用Python+Pygame,打造越战越精彩的太空大战!)
开发语言·python·pycharm·游戏程序·pygame
爱学习的程序媛10 小时前
Python常用框架梳理
开发语言·后端·python·ai·web·后端框架·python框架
imgsq10 小时前
GESP Python 一到四级:备考路线与真题特点
python·青少年编程
eggwyw12 小时前
Anaconda安装卸载的详细流程指南
开发语言·python
2601_9679791212 小时前
纯手写:Python安装pip完整教程,搞了几小时,终于成功
python·教程·pip·安装·包管理
Norna12 小时前
缓存文件从没写出来:一个 .json 被当成目录用了
python
aifannihao14 小时前
AI 学习第 14 课:CNN 训 6 轮卡在 0.5352,数据没打乱
pytorch·python·深度学习·cnn·学习路线