Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在python中将字符串/字符转换为整数_Python_String_Integer - Fatal编程技术网

在python中将字符串/字符转换为整数

在python中将字符串/字符转换为整数,python,string,integer,Python,String,Integer,我想将字符串中的单个字符转换为整数,再加上2,然后再转换回字符串。因此,A变为C,K变为M,等等。尝试ord(),应该做到这一点:)这是通过chr和ord函数完成的。Egchr(ord(ch)+2)做你想做的事。这些都已详细描述。 作战需求文件(c) 给定长度为1的字符串,当参数为Unicode对象时,返回一个整数,表示字符的Unicode代码点;当参数为8位字符串时,返回字节值。例如,ord('a')返回整数97,ord(u'\u2020')返回8224。这与8位字符串的chr()和unico

我想将字符串中的单个字符转换为整数,再加上2,然后再转换回字符串。因此,A变为C,K变为M,等等。

尝试
ord()
,应该做到这一点:)

这是通过chr和ord函数完成的。Eg
chr(ord(ch)+2)
做你想做的事。这些都已详细描述。

作战需求文件(c)


给定长度为1的字符串,当参数为Unicode对象时,返回一个整数,表示字符的Unicode代码点;当参数为8位字符串时,返回字节值。例如,ord('a')返回整数97,ord(u'\u2020')返回8224。这与8位字符串的chr()和unicode对象的unichr()相反。如果给定了unicode参数,并且Python是使用UCS2 unicode构建的,则字符的代码点必须在[0..65535]范围内(包括[0..65535]);否则字符串长度为2,将引发一个TypeError。

这听起来很像家庭作业,因此我将给您几段,让您填写其余部分

要访问字符串s中的单个字符,请选择其s[x],其中x是整数索引。指数从0开始

要获得字符的整数值,需要使用ord(c),其中c是字符。要将整数转换回字符,它是chr(x)。小心字母表末尾的字母


编辑:如果你想不出如何处理Y和Z,请留下评论,我会给出提示。

通常,只需ord并将2和chr加回来,(Y,Z将给你意外的结果(“[”,“\”)

如果你想把Y,Z变成A,B,你可以这样做

>>> chr((ord("A")-0x41+2)%26+0x41)
'C'
>>> chr((ord("Y")-0x41+2)%26+0x41)
'A'
>>> chr((ord("Z")-0x41+2)%26+0x41)
'B'
这里是A到Z

>>> [chr((i-0x41+2)%26+0x41) for i in range(0x41,0x41+26)]
['C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'A', 'B']

对于整个字符串,这将是:

>>> s = "Anne"
>>> ''.join([chr(ord(i)+2) for i in s]) 
'Cppg'
“Y”,“Z”很难

>>> s = "Zappa"
>>> ''.join([chr(ord(i)+2) for i in s]) 
'\\crrc'
函数:,

“ord”只是解决方案的一部分。您在这里提到的拼图是旋转的,因此“X”+3旋转为“A”。其中最著名的是旋转13个字符的rot-13。应用rot-13两次(旋转26个字符)会使文本恢复原状

处理此问题的最简单方法是使用翻译表

import string

def rotate(letters, n):
    return letters[n:] + letters[:n]

from_letters = string.ascii_lowercase + string.ascii_uppercase
to_letters = rotate(string.ascii_lowercase, 2) + rotate(string.ascii_uppercase, 2)

translation_table = string.maketrans(from_letters, to_letters)

message = "g fmnc wms bgblr"
print message.translate(translation_table)

这里没有一个ord()或chr()。那是因为我回答的问题与别人问的不同。;)

+1在不泄露解决方案的情况下,获得良好的家庭作业指导是的,我担心有人会认为这是家庭作业。我已经获得了计算机科学学士学位,并且我是一名ASP.NET程序员。但我一直在学习Django,并希望通过此网站提高我的Python技能:。无论如何,我认为“ord”是我想要的功能it’我在找;下班后我会试一试。谢谢大家的意见!啊,好吧。如果你愿意的话,我的两分钱让事情听起来不像家庭作业:只发布你想回答的部分问题(比如“如何在python中将字符转换为int”我记得这是我在学校密码学课上的第一个问题,而且我认为仅仅说“这听起来像是家庭作业,但不是”就能让我们所有人从回答中消除傲慢:)这看起来像是一个很酷的网站,我必须去看看(ord(i)+2)对于s中的i)也会做同样的事情括号到底做了什么?为什么不只是另一组偏执呢?@dalke已经知道了这一点,但对于那些不知道的人来说,更简单的方法就是message.decode('rot13')(上面是rot-n.)
import string

def rotate(letters, n):
    return letters[n:] + letters[:n]

from_letters = string.ascii_lowercase + string.ascii_uppercase
to_letters = rotate(string.ascii_lowercase, 2) + rotate(string.ascii_uppercase, 2)

translation_table = string.maketrans(from_letters, to_letters)

message = "g fmnc wms bgblr"
print message.translate(translation_table)