2019-02-10 扩展Python控制台实现中文反馈信息
"中文编程"知乎专栏原文地址
参考了周蟒的实现, 运行效果如下:
$ python3 解释器.py
Python 3.6.5 (v3.6.5:f59c0932b4, Mar 28 2018, 05:52:31)
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.57)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
(ZhPyConsole)
>>> 学
Traceback (most recent call last):
File "<console>", line 1, in <module>
命名错误: 命名'学'未定义
>>> for i in range(1,4):
... 生
...
Traceback (most recent call last):
File "<console>", line 2, in <module>
命名错误: 命名'生'未定义
完整源码在: 解释器.py
相关源码如下, 即改写InteractiveInterpreter.showtraceback
方法. 仅为演示之用, 直接用了字符串替换.:
def showtraceback(self):
sys.last_type, sys.last_value, last_tb = ei = sys.exc_info()
sys.last_traceback = last_tb
try:
行 = traceback.format_exception(ei[0], ei[1], last_tb.tb_next)
汉化行 = []
if sys.excepthook is sys.__excepthook__:
for 某行 in 行:
for 英文 in self.字典:
某行 = 某行.replace(英文, self.字典[英文])
汉化行.append(某行)
self.write(''.join(汉化行))
else:
# If someone has set sys.excepthook, we let that take precedence
# over self.write
sys.excepthook(ei[0], ei[1], last_tb)
finally:
last_tb = ei = None
定制sys.excepthook
貌似更为合适, 还需研究如何实现.
参考资料
2019-02-10 扩展Python控制台实现中文反馈信息的更多相关文章
- 2019-02-18 扩展Python控制台实现中文反馈信息之二-正则替换
"中文编程"知乎专栏原文地址 续前文扩展Python控制台实现中文反馈信息, 实现了如下效果: >>> 学 Traceback (most recent call ...
- python 控制台输出中文乱码问题
乱码原因: 源码文件的编码格式为utf-8,但是window的本地默认编码是gbk,所以在控制台直接打印utf-8的字符串当然是乱码了! 解决方法: 1,print mystr.decode('utf ...
- sublime text 3 python 控制台输出中文乱码解决方案
自建的python运行环境如下:python3 找到python3.sublime-build文件打开,在文件中加入"env": { "PYTHONIOENCODING& ...
- CF-1093 (2019/02/10)
CF-1093 1093A - Dice Rolling 输出x/2即可 #include<bits/stdc++.h> using namespace std; int main() { ...
- 2019第一期《python测试开发》课程,10月13号开学
2019第一期<python测试开发>课程,10月13号开学! 主讲老师:上海-悠悠 上课方式:QQ群视频在线教学,方便交流 本期上课时间:10月13号-12月8号,每周六.周日晚上20: ...
- python print 控制台输出中文
在pycharm里面的控制台用print输出信息, 本意想输出中文, 但是实际上是u\xxxx. 可以用这种方式: print("%s " % cn_string)
- 10个Python基础练习项目,你可能不会想到练手教程还这么有趣
美国20世纪最重要的实用主义哲学家约翰·杜威提出一个学习方法,叫做:Learning By Doing,在实践中精进.胡适.陶行知.张伯苓.蒋梦麟等都曾是他的学生,杜威的哲学也影响了蔡元培.晏阳初等人 ...
- 八月暑期福利,10本Python热门书籍免费送!
八月第一周,网易云社区联合博文视点为大家带来Python专场送书福利,10本关于Python的书籍内容涉及Python入门.绝技.开发.数据分析.深度学习.量化投资等.以下为书籍简介,送书福利请见文末 ...
- python json.dumps() 中文乱码问题
python json.dumps() 中文乱码问题 python 输出一串中文字符,在控制台上(控制台使用UTF-8编码)通过print 可以正常显示,但是写入到文件中之后,中文字符都输出成as ...
随机推荐
- python制作词云
需要模块wordcloud,pip install wordcloud安装即可.代码: , #边距background_color='black',#指定背景颜色font_path='simhei.t ...
- 熟悉HBase基本操作
1. ssh localhost start-dfs.sh start-hbase.sh hbase shell create 'Student', 'S_No', 'S_Name', 'S_Sex' ...
- Unity AssetBundle的几个加载方式
string path = @"AssetBundles/scene/cubewall.ab"; string cacheDownloadPath = @"file:// ...
- Nginx实现集群服务器的负载均衡
1.安装nginx和tomcat 我这里是使用docker安装的.安装流程可参照 dockerfile 这里安装了两个tomcat,端口分别是42000和42001.第二个tomcat的首页随便加了些 ...
- [Swift]LeetCode29. 两数相除 | Divide Two Integers
Given two integers dividend and divisor, divide two integers without using multiplication, division ...
- [Swift]LeetCode406. 根据身高重建队列 | Queue Reconstruction by Height
Suppose you have a random list of people standing in a queue. Each person is described by a pair of ...
- [Swift]LeetCode516. 最长回文子序列 | Longest Palindromic Subsequence
Given a string s, find the longest palindromic subsequence's length in s. You may assume that the ma ...
- 注解式controller开发,action找不到controller???
Spring这一列列的 , 配置是真的多,学完我都忘啦 那个配置是干什么的了. 这里我遇到的问题是 我前台 使用action请求controller中的方法时,却找不到 报错404. 首先你路径 ...
- 面试前必知Redis面试题—缓存雪崩+穿透+缓存与数据库双写一致问题
今天来分享一下Redis几道常见的面试题: 如何解决缓存雪崩? 如何解决缓存穿透? 如何保证缓存与数据库双写时一致的问题? 一.缓存雪崩 1.1什么是缓存雪崩? 回顾一下我们为什么要用缓存(Redis ...
- BBS论坛(二十五)
25.1.发布帖子后台逻辑完成 (1)apps/models.py class PostModel(db.Model): __tablename__ = 'post' id = db.Column(d ...