python中的 + 不能和java一样作为连接符么?
问题描述
print(’10/3 = ’ + 10/3)会直接报语法错误。如果是Java语言则会打印出 10/3 = 3,请问怎么通过Python实现这样的打印?
我搜了一些资料,都说Python的 + 只支持同类型,如 print(True + False)。请问如何实现上诉功能?
问题解答
回答1:能啊,但是 Python 是强类型语言,不喜欢自动进行类型转换。你可以用 ’10/3 = ’ + str(10/3) 这样子显式转换类型。另外 Python 能够 True + False 是个历史遗留问题,因为 bool 值相加没有意义。
当然啦,Python 处理字符串拼接有好多好办法。以下是历史发展顺序:
’10/3 = %s’ % (10/3)’10/3 = {}’.format(10/3) # 2.6+f’10/3 = {10/3}’ # 3.6+
PS: 要「上诉」,你得先打场官司,然后对判决不服,才能提起「上诉」。
回答2:print(’10/3 =’, 10/3)print(’10/3 = {}’.format(10/3))print(’10/3 = %d’%(10/3))回答3:
class myString(str):
def __add__(self,attr): return ’’.join([self.__str__(),’=’,str(attr)])
ex=myString(’10/3’)print(ex+10/3)
希望不要给你添乱;如果是ruby的话,不用自定义str的子类,直接在str上修改就可以,因为它都是“敞开的”,虽然我不怎么会ruby
相关文章:
1. html5 - 请问一下写H5的时候 你们都是兼容那些手机2. mysql - 仅仅只是把单引号与反斜杠转义不用prepare statement能否避免sql注入?3. 关于docker下的nginx压力测试4. docker api 开发的端口怎么获取?5. macos - mac下docker如何设置代理6. docker-machine添加一个已有的docker主机问题7. docker网络端口映射,没有方便点的操作方法么?8. 如何解决Centos下Docker服务启动无响应,且输入docker命令无响应?9. docker 下面创建的IMAGE 他们的 ID 一样?这个是怎么回事????10. sublime-text - sublime text 3中编译python(sublimeREPL),如何仅运行单行/选定部分

网公网安备