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。

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

相关推荐
时间的拾荒人1 小时前
Qt 事件机制全解析:从事件处理到事件过滤器
开发语言·qt·面试
于指尖飞舞1 小时前
java面试题总结
java·开发语言
打工仔折腾 AI1 小时前
把AI Agent托管在家用电脑:UU远程终端与端口映射实测记录
人工智能·后端·python·langchain·ai agent 实战
yivifu1 小时前
中文古籍电子书注释集成
前端·javascript·python·beautifulsoup·epub
零基础1231 小时前
Agent 的 Memory 怎么做科研:以中医诊断场景为例
人工智能·经验分享·python·语言模型
databook2 小时前
面向数据工程师的正则表达式:从日志清洗到字段提取
python·正则表达式·数据分析
zhangzeyuaaa2 小时前
深入理解 Ruby 运算符:本质、分类、坑点与重载实战
开发语言·前端·ruby
一木 之林2 小时前
DeepSeek Agent 开发(一)
开发语言·前端·javascript
朔北之忘 Clancy2 小时前
青少年软编等考七级题解目录
开发语言·c++·青少年编程·gesp·csp·信奥赛·noi