【开发心得】都是回车键,ASCII却不同,8成都不知道

今天在使用sublime text进行python开发过程中,碰到一个奇怪的问题,关于回车键的ASCII码,估计8成人都没有关注过。既然碰到了,就把问题搞透。

目录

现象

原因分析

谜题解开


现象

先看一段代码:

# -*- coding: utf-8 -*-

from borax.calendars.lunardate import LunarDate

s_year=int(input("请输入年:"))
s_month=int(input("请输入月:"))
s_day=int(input("请输入日:"))

lunar_date=LunarDate.from_solar_date(s_year,s_month,s_day)
month=lunar_date.month
day=lunar_date.day
print(lunar_date.strftime('%G'))
print('农历',month,'月',day,'日')

代码逻辑很简单,就是输入一个公历日期,输出对应的农历日期;

但是没想到在sublime text执行过程中,却发现一个问题:回车键不管用了!

对比下面两张图:

 

第一张图是按了回车以后执行的。

第二张图也是按了回车以后执行的。

是不是很奇怪?其实不奇怪,前者是按了数字键盘(俗称小键盘)上的回车键。后者,则是大键盘上的回车键。

原因分析

为什么会造成不同的执行结果呢?

原来,这个窗口是sublime text的Repl插件,可以方便的进行调试,尤其是涉及到有输入框的情况下,sublime text自身的那个ctrl+B窗口是无法进行输入后执行的。

上述现象说明,两个回车键是不同的,猜测跟ASCII码有关。

谜题解开

找chatGPT问了一下,果然回复了如下描述:

大键盘上的回车键和小键盘上的回车键的ASCII码是不同的。

在大键盘上,回车键对应的ASCII码为13(十进制),也可以表示为0x0D(十六进制)。而在小键盘上,回车键对应的ASCII码为10(十进制),也可以表示为0x0A(十六进制)。

这两个字符虽然在计算机中都是用于表示回车操作,但它们在ASCII字符编码中是不同的。有些操作系统或应用程序可能会根据不同的平台和环境来解释这两个字符的含义。

我讲明白了吗?

猜你喜欢

转载自blog.csdn.net/hehuii/article/details/131417968