我想把base64encode(ntei)
放到“这是以64为底的数字:”下面的一行,有人知道方法吗?在
import easygui as e
nte = e.enterbox(msg="Enter Number to convert", title="", default="", strip=True)
ntei = int(nte)
def base64encode(number, alphabet="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"):
"""Converts an integer to a base64 string."""
if not isinstance(number, (int, long)):
raise TypeError("Number must be an integer")
base64 = ""
sign = ""
if number < 0:
sign = "_"
number = -number
if 0 <= number <len(alphabet):
return sign + alphabet[number]
while number !=0:
number, i = divmod(number, len(alphabet))
base64 = alphabet[i] + base64
return sign + base64
def base60decode(number):
return int(number, 64)
print e.msgbox(msg=("Heres the number in base 64: " + base64encode(ntei)))
问题出在
"Heres the number in base 64: " + base64encode(ntei)
。你自己并没有在那里放一条新线,所以自然不会显示。在Python中,新行通过字符\n
表示。因此,要向该字符串添加新行,必须将其更改为"Heres the number in base 64:\n" + base64encode(ntei)
。在还值得一提的是,base64encode函数是完全不必要的(就像在
easygui.msgbox
前面使用print
,除非出于某种原因您希望看到该函数的返回值)。可以通过Python字符串的encode方法将字符串转换为base64,如ntei.encode('base64')
。利用这些知识,可以将整个程序重写为以下内容:相关问题 更多 >
编程相关推荐