前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >python全栈开发《64.不同数据类型之间的转换:字符串与数字的转换》

python全栈开发《64.不同数据类型之间的转换:字符串与数字的转换》

作者头像
清菡
发布2024-11-11 19:42:21
发布2024-11-11 19:42:21
10800
代码可运行
举报
文章被收录于专栏:清菡软件测试清菡软件测试
运行总次数:0
代码可运行

文章总览图

1.什么是类型转换,为什么做类型转换

什么是类型转换,有点像身份的变更。不同的身份,有权做的事情也不一样。

比如上学的时候,每个科目都有课代表。语文课代表就是辅助语文课的相关学习工作。

而数学课代表则是辅助数学相关的学习工作。如果语文课代表想去做数学相关的辅助工作。

就需要从语文课代表转岗到数学课代表才行。数据类型的转换也是如此。

  • 1)将自身数据类型变成新的数据类型,并拥有新的数据类型的所有功能的过程即为类型转换。
  • 2)为方便更好的帮助处理业务,将类型变更为更适合业务场景的类型。

2.字符串与数字之间转换的要求

  • 1)str转number:必须都是数字组成的字符串。
  • 2)number转str:无要求。

3.字符串与数字之间的转换函数

例1:正确示例。

代码语言:javascript
代码运行次数:0
复制
int_str = '102983475'
new_int = int(int_str)
print(new_int)

运行结果:

代码语言:javascript
代码运行次数:0
复制
102983475

例2:错误示例。不都是数字组成的字符串。

代码语言:javascript
代码运行次数:0
复制
int_str = '1029834a5'
new_int = int(int_str)
print(new_int)

运行结果:报错。

代码语言:javascript
代码运行次数:0
复制
/Users/llq/PycharmProjects/pythonlearn/pythonlearn/change/bin/python /Users/llq/PycharmProjects/pythonlearn/change/1.py 
Traceback (most recent call last):
  File "/Users/llq/PycharmProjects/pythonlearn/change/1.py", line 2, in <module>
    new_int = int(int_str)
ValueError: invalid literal for int() with base 10: '1029834a5'

进程已结束,退出代码为 1 

4.代码

例1:

代码语言:javascript
代码运行次数:0
复制
# coding:utf-8

int_data = 12
float_data = 3.14

str_int_data = str(int_data)
str_float_data = str(float_data)
print(str_int_data,str_float_data,type(str_int_data),type(str_float_data))

zero_number = 0
_number = -1

str_zero_number = str(zero_number)
str_number = str(_number)
print(str_zero_number,str_number,type(str_zero_number),type(str_number))

str_float = '3.14'
str_int = '123456'

real_float = float(str_float)
real_int = int(str_int)

print(real_float,real_int,type(real_float),type(real_int))

运行结果:

代码语言:javascript
代码运行次数:0
复制
12 3.14 <class 'str'> <class 'str'>
0 -1 <class 'str'> <class 'str'>
3.14 123456 <class 'float'> <class 'int'>

进程已结束,退出代码为 1

例2:内部有非数字的字符串:例如 '123A',用float()转成浮点型,转换失败。

代码语言:javascript
代码运行次数:0
复制
mix_str = '123A'
print(float(mix_str))

运行结果:

代码语言:javascript
代码运行次数:0
复制
/Users/llq/PycharmProjects/pythonlearn/pythonlearn/change/bin/python /Users/llq/PycharmProjects/pythonlearn/change/change_str_number.py 
Traceback (most recent call last):
  File "/Users/llq/PycharmProjects/pythonlearn/change/change_str_number.py", line 26, in <module>
    print(float(mix_str))
ValueError: could not convert string to float: '123A'

进程已结束,退出代码为 1

例3:内部是浮点型的字符串:例如'3.14',用int()转换成整型,转换失败。

代码语言:javascript
代码运行次数:0
复制
float_data_str ='3.14'
test_data = int(float_data_str)
print(test_data,type(test_data))

运行结果:

代码语言:javascript
代码运行次数:0
复制
/Users/llq/PycharmProjects/pythonlearn/pythonlearn/change/bin/python /Users/llq/PycharmProjects/pythonlearn/change/change_str_number.py 
Traceback (most recent call last):
  File "/Users/llq/PycharmProjects/pythonlearn/change/change_str_number.py", line 28, in <module>
    test_data = int(float_data_str)
ValueError: invalid literal for int() with base 10: '3.14'

进程已结束,退出代码为 1

虽然int()可以对字符串进行转换,但是'3.14'内部是个浮点类型。如果它是个纯粹的浮点类型,还可以用int()进行一次转换。

但是'3.14'实际上是个内部是浮点型的字符串类型,所以不符合它的标准。就报错了。

例4:内部是浮点型的字符串:例如'3.14',用float()转换成浮点型,转换成功。

代码语言:javascript
代码运行次数:0
复制
float_data_str ='3.14'
test_data = float(float_data_str)
print(test_data,type(test_data))

运行结果:

代码语言:javascript
代码运行次数:0
复制
3.14 <class 'float'>

例5:内部是整型的字符串:例如:'123',通过float()转换成浮点型,转换成功。

代码语言:javascript
代码运行次数:0
复制
# coding:utf-8

int_data_str = '123'
test_data = float(int_data_str)
print(test_data,type(test_data))

运行结果:

代码语言:javascript
代码运行次数:0
复制
123.0 <class 'float'>

进程已结束,退出代码为 0

以上总结:

如果是个浮点类型的字符串,想用int()函数转换,是不可以的。但是,如果是个整型的字符串,可以通过float()进行转换。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-11-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 清菡软件测试 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.什么是类型转换,为什么做类型转换
  • 2.字符串与数字之间转换的要求
  • 3.字符串与数字之间的转换函数
  • 4.代码
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档