我正在尝试将文本写入二进制转换器,虽然可以正常工作,但一次只能接受一个字母。我该如何做才能容纳多个字母?非常感谢您的帮助。也是第一次在这里发布,所以请让我知道我做错了什么。
在意识到我可以做一个for循环之前,我为每个字母进行了硬编码,这很痛苦,所以我就做一个循环。
letters = {
'A' : 65,
'B' : 66,
'C' : 67,
'D' : 68,
'E' : 69,
'F' : 70,
'G' : 71,
'H' : 72,
'I' : 73,
'J' : 74,
'K' : 75,
'L' : 76,
'M' : 77,
'N' : 78,
'O' : 79,
'P' : 80,
'Q' : 81,
'R' : 82,
'S ': 83,
'T' : 84,
'U' : 85,
'V' : 86,
'W' : 87,
'X' : 88,
'Y' : 89,
'Z' : 90,
}
def converter():
answer = input('What would you like to convert to binary?')
for i in range(1):
print(bin(letters.get(answer)))
while True:
converter()
答案 0 :(得分:2)
您不需要字典,可以使用下面的ord函数。
try
{
LdapDirectoryIdentifier ldi = new LdapDirectoryIdentifier("hostname", 50001);
System.DirectoryServices.Protocols.LdapConnection ldpcon = new System.DirectoryServices.Protocols.LdapConnection(ldi);
NetworkCredential networkCredential = new NetworkCredential(username, pass, "domain");
ldpcon.SessionOptions.SecureSocketLayer = true;
ldpcon.AuthType = AuthType.Basic;
if(ldpcon.SessionOptions.HostReachable == true)
{
ldpcon.Bind(networkCredential);
Response.Redirect("~/Default.aspx");
}
else
{
errorLabel.Text = "Failed binding.";
errorLabel.Visible = true;
}
}
catch (System.DirectoryServices.Protocols.LdapException)
{
errorLabel.Text = "Error authenticating.";
errorLabel.Visible = true;
}
catch (Exception)
{
errorLabel.Text = "Error authenticating.";
errorLabel.Visible = true;
}
例如
def converter():
answer = input('What would you like to convert to binary?')
for c in answer:
print(bin(ord(c)))
答案 1 :(得分:1)
您可以将字符串作为输入,并为字符串中的每个字母输出二进制文件
String username = ((UserDetails)principal).getUsername();
String password = ((UserDetails)principal).getPassword();
答案 2 :(得分:1)
这很简单。您需要在converter()函数的开始处输入另一个输入,该输入指示该输入有多长时间。因此,例如,我们可以添加length = int(input())。然后只需输入字符串即可像您已经进行的那样进行转换。另外,如果您在其中使用一个字符ord(),也可以使二进制打印更加容易,因此根本不需要字母字典。这就是您的新converter()函数:
def converter():
length = int(input("lenght of the letters"))
letters = input("what letters do you want to turn in binary?")
for i in range(length):
print(bin(ord(letters[i]), ' ')) # ' ' for the spacing between the values
就是这样。我现在将解释解决方案:
首先,我们提示用户将要转换为二进制的字符。 现在,随着长度的增加,我们开始进行for循环。
如果您不知道字母[i]的功能,它将获取字符串的第i个索引。索引只是减少列表,字符串,元组和可能更多数据类型的元素的一种方法。请注意,如果n是字符串/列表/元组的长度,则它们从0开始并以n-1结束。还要注意,它们不能用在字典中->您可以使用dictionary [i],但“ i”不是索引,它是键。好的,现在我们已经覆盖了该内容(如果您还不知道),可以将其返回到代码中。因此,如果range函数只有一个参数,则从0开始。这就是为什么索引起作用的原因。最后是印刷品。 ord()函数获取字符的二进制(这是一个字符串,但在python中的长度为1)。因此,字母[i]获取字符串的第i个元素,该元素只是一个字符,因此ord()函数起作用。您也可以在这里看到替代解决方案(但我不会解释它们,因为我讨厌打字): 解决方案2:
def converter():
#length = int(input("lenght of the letters"))
letters = input("what letters do you want to turn in binary?")
for i in range(len(letters)): # len() gets the lenght of letters
print(bin(ord(letters[i]), ' ')) # ' ' for the spacing between the values
解决方案3:
def converter():
#length = int(input("length of the letters"))
letters = input("what letters do you want to turn in binary?")
for i in letters:
print(bin(ord(letters[i]), ' ')) # ' ' for the spacing between the values
是的。再见!