Python中print()、str()和repr()等函数学习

在Python常用类型转换函数的内容中,有几个比较有意思的函数:str(),repr(),print(),chr(),eval(str)。

一、函数定义

1、str():用于将对象转化为适于人阅读的字符串的形式;

2、repr():用于将对象转化为可供解释器读取的字符串形式;

3、print():将对象打印并输出,省去引号;

4、chr():将一个整数转化为字符,整数为字符的ASCII编码;

5、eval(str):将字符串str当做表达式进行求值,并返回计算结果;

 

二、实例

下面我们通过几个实例解释一些这几个函数。

a = 666

type(a)
Out[9]: int

type(print(a))
666
Out[10]: NoneType

b = '666'

print(b)
666

type(b)
Out[13]: str

type(print(b))
666
Out[14]: NoneType

例子中,print函数具有打印功能,打印的时候去掉了引号,并且输出值没有类型。但是,repr()函数会为对象加引号!可以看下面例子,还是使用a和b的表达式。

a = 666
b = '666'

repr(b)
Out[16]: "'666'"

repr(a)
Out[17]: '666'

接下来对比str()函数,参考下面输出和repr()函数对比。

a = 666
b = '666'

str(a)
Out[18]: '666'

str(b)
Out[19]: '666'

 最后,我们测试一下chr()和eval()函数,如下:

a = 666
b = '666'
c = '-665'

#b和c如果不是字符串就会报错
eval(b+c)
Out[24]: 1

chr(a)
Out[20]: 'ʚ'

 

Python,类的特殊方法`__repr__`和`__str__`都是用来返回对象的字符串表示形式,但是它们的用途和输出方式略有不同。 `__repr__`方法的作用是返回一个对象的“官方”字符串表示形式,通常包含足够的信息以便于重建该对象。在交互式环境,直接输入对象名称并执行时,会自动调用该对象的`__repr__`方法。例如: ```python class Person: def __init__(self, name, age): self.name = name self.age = age def __repr__(self): return f"Person('{self.name}', {self.age})" p = Person('Alice', 25) print(p) # 输出:Person('Alice', 25) ``` `__str__`方法的作用是返回一个对象的可读性较好的字符串表示形式,通常用于打印输出和显示给用户看。当使用`str()`函数或者`print()`函数输出一个对象时,会自动调用该对象的`__str__`方法。例如: ```python class Person: def __init__(self, name, age): self.name = name self.age = age def __str__(self): return f"{self.name} is {self.age} years old" p = Person('Alice', 25) print(p) # 输出:Alice is 25 years old ``` 需要注意的是,如果一个对象没有定义`__str__`方法,但是定义了`__repr__`方法,则在使用`str()`函数或者`print()`函数输出该对象时,会默认使用`__repr__`方法返回的字符串表示形式。反之亦然,如果一个对象没有定义`__repr__`方法,则在交互式环境直接输入该对象名称并执行时,会默认使用`__str__`方法返回的字符串表示形式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值