python输出中文加数字_Python实现阿拉伯数字加上中文数字
在Python 3里面,中文是可以作为变量名的,而运算符又可以重载,基于这两个特性,我们可以实现阿拉伯数字与中文数字的四则运算。
首先我们定义一个类 Num :
class Num(object):
def __init__(self, n):
self.n = n
def __repr__(self):
return self.n
def __str__(self):
return str(self.n)
然后把这个类初始化为各个中文数字:
一 = Num(1)
五 = Num(5)
八 = Num(8)
运行效果如下图所示:
代码里面,通过实现 __repr__ ,能实现在Jupyter或者Python命令行交互环境里面输入变量名回车就显示变量的值。
通过实现 __str__ ,能实现在Python 里面 print (变量) 的时候打印出具体的值。
但现在还不够,当我们进行四则运算的时候,会报错:
为了能够正常实现 一 + 1 ,我们需要实现 __add__ 方法:
class Num(object):
def __init__(self, n):
self.n = n
def __repr__(self):
return str(self.n)
def __str__(self):
return str(self.n)
def __add__(self, x):
return self.n + x
运行效果如下图所示:
但是,如果我们把加号两侧的数字兑换一下,代码又报错了,如下图所示:
这是由于,当我们执行 a + b 的时候,Python会调用 a 对象里面的 __add__ 方法,所以当我们执行 一 + 1 的时候,调用的是 一 里面的 __add__ 方法,这是我们自己写的,所以能够正常运行。
但是当我们执行 1 + 一 的时候,调用的是 1 里面的 __add__ 方法。在Python里面,数字对象里面的 __add__ 方法只能实现数字加数字。
但是我们不能修改Python 内置数字的 __add__ 方法,所以我们需要使用 __radd__ 方法。它的作用是,在 1 + 一 执行的时候,如果 1 里面的 __add__ 运行失败了,那么就会调用 一 里面的 __radd__ :
class Num(object):
def __init__(self, n):
self.n = n
def __repr__(self):
return str(self.n)
def __str__(self):
return str(self.n)
def __add__(self, x):
return self.n + x
def __radd__(self, x):
return self.n + x
运行效果如下图所示:
同样的原理,你可以自己实现减法 __sub__ / __rsub__ 、乘法 __mul__ / __rmul__ 和除法 __truediv__ / __rtruediv__ 。
python输出中文加数字_Python实现阿拉伯数字加上中文数字相关推荐
- 制打印如下所示的n行数字金字塔_一日一技:在Python中实现阿拉伯数字加上中文数字...
在Python 3里面,中文是可以作为变量名的,而运算符又可以重载,基于这两个特性,我们可以实现阿拉伯数字与中文数字的四则运算. 首先我们定义一个类 Num: class Num(object): d ...
- python判断输入的是否为数字_python怎么判断是否为数字 将罗马数字转为阿拉伯数字,用python解...
将阿拉伯数字转为罗马数字,用python解 class Solution(object): def intToRoman(self, num): """ :type nu ...
- python输出语句print用法_python输出语句print的用法是什么?_后端开发
python输出语句"print()"是式样化输出函数,用于打印输出."print()"函数会自动换行:printf()函数的语法为:"printf( ...
- python输出结果空格分割_python 输出列表元素实例(以空格/逗号为分隔符)
给定list,如何以空格/逗号等符号以分隔符输出呢? 一般的,简单的for循环可以打印出list的内容: l=[1,2,3,4] for i in l: print(i) 输出结果一行一个元素: 1 ...
- python中文文本分析_python使用snownlp进行中文文本处理以及分词和情感分析 - pytorch中文网...
SnowNLP: 一个简单的中文文本处理库 SnowNLP是一个python写的类库,可以方便的处理中文文本内容,是受到了TextBlob的启发而写的,由于现在大部分的自然语言处理库基本都是针对英文的 ...
- python输出文字加数字_python变量、输入、输出、数字、字符串
总结 01.print()输出 02.数据类型:Numbers(数字类型:int(整数型).float(浮点数).complex(复数:实数+虚数 5+2j).布尔值(true.false)) 03. ...
- python里面如何将数字转换成中文的形式_python中将阿拉伯数字转换成中文的实现代码...
#!/usr/bin/python #-*- encoding: utf-8 -*- import types class NotIntegerError(Exception): pass class ...
- python输出一行10个_python 如何将一系列数字十个一行输出【】
如何方便地给Python环境注册新类库 要利用Python进行计算,就需要一一安装所需的模而这些模块又依赖于其软件包或库,因而安装和使用起来相对麻烦.幸好有人专门在做这一类事情,将科学计算所需要的模块 ...
- python输出汉字怎么对齐_Python的print输出中文对齐问题
问题描述: 在使用Python的内建函数print作英文输出时,应用格式化输出可以对齐得很好: s1 = 'I am a long sentence.' s2 = 'I\'m short.' prin ...
最新文章
- Wannafly挑战赛9
- python 重复输出字符串
- idea中maven执行install报错_IntelliJ IDEA Maven编译install时报错,无效的发行版:1.8
- .net实现URL重写
- js 定时器用法详解——setTimeout()、setInterval()、clearTimeout()、clearInterval()
- 隐藏a标签seo_SEO网站优化,新手SEO常犯的五个错误!
- SQL Server内联表值函数
- 概念理解之装箱与拆箱
- 笔记本电脑装机详细步骤图文教程
- 计算机电源 3842,UC3842开关电源保护的几个技巧及电路图
- 全民K歌神器,这款麦克风唱享高音质体验
- 河南省谷歌高清卫星地图下载
- 小活动大收获,大叔做烧烤摊,两周收款10万,竟如此简单!
- ICP-MS测试/电感耦合等离子体质谱仪(型号Perkin Elmer Nexion 300)
- 一文看懂神经网络工作原理
- GD32F103ZET6奋斗者开发板W5500通信——01 基础移植
- 玩转iPhone实用技巧
- The app icon set named AppIcon did not have any applicable content.
- 江苏自考计算机应用基础停考了吗,江苏自考停考35个自考专业!附详细专业目录...
- NOP法破解简易登录系统