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

目录

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

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

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

  • 4.代码

745d1e6fe6e33a87b19d20d3b860cace.png
文章总览图

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

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

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

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

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

  • 1)将自身数据类型变成新的数据类型,并拥有新的数据类型的所有功能的过程即为类型转换。

  • 2)为方便更好的帮助处理业务,将类型变更为更适合业务场景的类型。

caeb9d4be0ad93912b05e8051b5b20c5.png

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

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

9a019960e47916c1fdcc6dcb80fbe651.png
  • 2)number转str:无要求。

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

b992b2e98d3e65536b79714c18396c00.png

例1:正确示例。

int_str = '102983475'
new_int = int(int_str)
print(new_int)

运行结果:

102983475

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

int_str = '1029834a5'
new_int = int(int_str)
print(new_int)

运行结果:报错。

/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:

# 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))

运行结果:

12 3.14 <class 'str'> <class 'str'>
0 -1 <class 'str'> <class 'str'>
3.14 123456 <class 'float'> <class 'int'>

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

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

mix_str = '123A'
print(float(mix_str))

运行结果:

/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()转换成整型,转换失败。

float_data_str ='3.14'
test_data = int(float_data_str)
print(test_data,type(test_data))

运行结果:

/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()转换成浮点型,转换成功。

float_data_str ='3.14'
test_data = float(float_data_str)
print(test_data,type(test_data))

运行结果:

3.14 <class 'float'>

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

# coding:utf-8

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

运行结果:

123.0 <class 'float'>

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

以上总结:

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

清菡软件测试

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值