虽然 Python 是弱类型编程语言,不需要像 Java 或 C 语言那样还要在使用变量前声明变量的类型,但在一些特定场景中,仍然需要用到类型转换。
比如说,我们想通过使用 print() 函数输出信息“您的身高:”以及浮点类型 height 的值,如果在交互式解释器中执行如下代码:
>>>?height?=?70.0 >>>?print("您的身高"+height) Traceback?(most?recent?call?last): ??File?"<pyshell#1>",?line?1,?in?<module> ????print("您的身高"+height) TypeError:?must?be?str,?not?float
会发现这是错误的,解释器提示我们字符串和浮点类型变量不能直接相连,需要提前将浮点类型变量 height 转换为字符串才可以。
庆幸的是,Python 已经为我们提供了多种可实现数据类型转换的函数,如图所示。
函 数 | 作 用 |
---|---|
int(x) | 将 x 转换成整数类型 |
Iloat(x) | 将 x 转换成浮点数类型 |
complex(real,[,imag]) | 创建一个复数 |
str(x) | 将 x 转换为字符串 |
repr(x) | 将 x 转换为表达式字符串 |
eval(str) | 计算在字符串中的有效 Python 表达式,并返回一个对象 |
chr(x) | 将整数 x 转换为一个字符 |
ord(x) | 将一个字符 x 转换为它对应的整数值 |
hex(x) | 将一个整数 x 转换为一个十六进制字符串 |
oct(x) | 将一个整数 x 转换为一个八进制的字符串 |
需要注意的是,在使用类型转换函数时,提供给它的数据必须是有意义的。例如,int() 函数无法将一个非数字字符串转换成整数:
>>>?int("123")?#转换成功 123 >>>?int("123个")?#转换失败 Traceback?(most?recent?call?last): ??File?"<pyshell#3>",?line?1,?in?<module> ????int("123个") ValueError:?invalid?literal?for?int()?with?base?10:?'123个' >>>
描述
Python strip() 方法用于移除字符串头尾指定的字符(默认为空格)。
语法
strip()方法语法:
str.strip([chars]);
参数
chars -- 移除字符串头尾指定的字符。
返回值
返回移除字符串头尾指定的字符生成的新字符串。
实例
以下实例展示了strip()函数的使用方法:
#!/usr/bin/python #?-*-?coding:?UTF-8?-*- ?? str?=?"0000000???jb51.net?0000000" print(str.strip(?'0'?))?#?去除首尾字符?0? ?? str2?=?"??jb51.net???"??#?去除首尾空格 print(str2.strip())
以上实例输出结果如下:
???jb51.net?? jb51.netPython3 replace()方法
描述
replace() 方法把字符串中的 old(旧字符串) 替换成 new(新字符串),如果指定第三个参数max,则替换不超过 max 次。
语法
replace()方法语法:
str.replace(old, new[, max])
参数
old -- 将被替换的子字符串。
new -- 新字符串,用于替换old子字符串。
max -- 可选字符串, 替换不超过 max 次
返回值
返回字符串中的 old(旧字符串) 替换成 new(新字符串)后生成的新字符串,如果指定第三个参数max,则替换不超过 max 次