【问题标题】:How to return the ASCII string after a given string of numbers?如何在给定的数字字符串之后返回 ASCII 字符串?
【发布时间】:2021-12-13 23:38:45
【问题描述】:

为了打印 ASCII,我需要反转字符串,以便我所做的,然后以 41 11 等为例,并将其转换为字符。结果应该是一个词(在这种情况下,黑客)

转换需要按照这个: 1.A到Z的取值范围是65到90 2.a到z的取值范围是97到122 3.空格字符的值为32

你知道怎么做吗?

提前谢谢你!

这就是我目前得到的: 我得到 Unicode 字符

['41', '11', '01', '10', '17', '99', '99', '27'] 41 11 01 10 17 99 99 27 ) 抄送


s="729799107101114"

rs=s[::-1]

import re
new=re.findall('..',rs)
print(new)
n=""
for num in new:
    n+=num+" "
print(n)

j=''.join(chr(int(i)) for i in n.split())
print(j)

【问题讨论】:

  • s 十六进制吗? IE。 “77”代表“w”还是“M”?
  • 77 必须是 M。我已添加范围
  • 示例字符串中是否有多余的“9”?
  • 是的,对不起,我修好了

标签: python loops arraylist ascii reverse


【解决方案1】:

输入显示ASCII 代码上的数字。即72H 字符。

那么结果是这样的:

s="72 97 99 107 101 114"
j=''.join(chr(int(i)) for i in s.split())
print(j)

[输出]

Hacker

[编辑]:

在这一部分中,我们将数字标记为它,没有空格。

s="721111193211611132114101116117114110321161041013265836773733211511611410511010332971021161011143297321031051181011103211511611410511010332111102321101171099810111411563"
j=''
start=0
step=2
while start < len(s)-1:
    n=s[start:start+2]
    if 32<=int(n)<=99:
        start+=2
    if int(n)<32:
        n=s[start:start+3]
        start+=3        
    j=j+(chr(int(n)))
print(j)

[Output2:] 在这个序列号样本中,我们会得到这个句子:

How to return the ASCII string after a given string of numbers?

【讨论】:

  • 谢谢!我认为这会更难,但我还需要在字符串中添加空格,我需要先反转字符串
  • @Bordento22,查看编辑更新。现在,我们不需要在字符串中手动添加空格。
  • 你能解释为什么直到 99 吗?例如,为什么不到 96 岁?
  • 这都是关于 [几十和几百个地方]。因此,99 是可以包含“2 位”的最大数字。然而,我们将 32 作为最小的“2 位”。另一方面,在我们的例子中,包含“3 位”的数字从 100122。希望您现在清楚这一点,@ Bordento22。
【解决方案2】:

稍微不那么冗长的版本:

res = ''
start = end = 0
while end < len(s):
    end = start + 2 + (s[start] == '1')
    res += chr(int(s[start:end]))
    start = end

【讨论】:

    猜你喜欢
    • 2021-12-28
    • 2012-11-05
    • 2023-04-05
    • 1970-01-01
    • 2018-11-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-19
    相关资源
    最近更新 更多