我已经在这上面花了好几个小时了。我认为我的问题是我需要在第一个函数中使用 return ,以便我可以使用该函数作为第二个函数中的参数。但是,如果我使用返回,数据似乎无法正确传递给第二个函数。我这么说是因为如果我注释掉我的 print 语句并只使用 return (return 语句不允许我包含 end = '',所以它是垂直出现的),我似乎无法正确格式化它。然后第二个函数只是吐出第一个函数返回的第一个数字。我很迷茫,我想我现在需要睡觉了。为此整晚没睡。有什么方法可以将数据返回到第一个函数中,并使其成为一个很好的水平字符串,就像我使用 print 语句一样? (或者这并不重要,我偏离了轨道?)如果我可以澄清一些事情,请告诉我。只要朝正确的方向轻推就会有所帮助。
说明:编写一个程序,将一个正整数作为 输入,并输出代表整数的 1 和 0 的字符串 二进制。对于整数 x,算法为:
只要x大于0
输出 x % 2(余数为 0 或 1)
x = x // 2
注意:上述算法输出0和1 以相反的顺序。您需要编写第二个函数来反转 字符串。
例如:如果输入是:6
输出为: 110
程序必须定义并调用以下两个函数。 定义一个名为 int_to_reverse_binary() 的函数,它接受一个整数 作为参数并返回代表 1 和 0 的字符串 二进制整数(相反)。
定义一个名为 string_reverse() 以输入字符串作为参数并返回 表示输入字符串反转的字符串。定义 int_to_reverse_binary(integer_value) def string_reverse(input_string)
我的代码:
def int_to_reverse_binary(int_number):
while int_number > 0:
#print (int_number % 2, end='')
return int_number % 2
int_number = int_number // 2
def string_reverse(input_string):
for i in reversed(str(input_string)):
print(i,end='')
if __name__ == '__main__':
# Type your code here.
# Your code must call int_to_reverse_binary() to get
# the binary string of an integer in a reverse order.
# Then call string_reverse() to reverse the string
# returned from int_to_reverse_binary().
x = int(input())
int_to_reverse_binary(x)
string_reverse(int_to_reverse_binary(x))
1:比较输出 0 / 2 输出不同。请参阅下面的亮点。 输入 6 你的输出 0 预期产出 110
2:单元测试 0 / 2 使用 int_to_reverse_binary() 和 string_reverse() 将 19 转换为二进制 你的输出 1 测试反馈 string_reverse(user_input) 未返回值。 您的函数可能缺少 return 语句。
3:单元测试 0 / 3 使用 int_to_reverse_binary() 和 string_reverse() 将 255 转换为二进制 你的输出 1 测试反馈 string_reverse(user_input) 未返回值。 您的函数可能缺少 return 语句。
return
语句也充当函数的结束点。也就是说,一旦函数中遇到 return 语句,就不会执行任何语句。因此,当执行
while
循环时,解释器会看到 return 语句并停止进一步执行。如果您希望从函数返回多个值,您可以做两件事,
def foo(num):
return num % 2
i = 0
while i< 10:
print(foo(i))
i += 1
list
一次返回所有值。示例代码:
def foo(num):
a = []
i = 0
while i < num:
a.append(i)
i+=1
print(foo(10))
更正代码:
def int_to_reverse_binary(int_number):
# print('i', int_number)
a = []
while int_number > 0:
a.append(int_number % 2)
int_number = int_number // 2
# print('a', a)
return a
def string_reverse(input_string):
print(''.join([str(i) for i in input_string])[::-1])
if __name__ == '__main__':
x = int(input())
# a = int_to_reverse_binary(x)
string_reverse(int_to_reverse_binary(x))
def int_to_reverse_binary(int_number):
return f'{int_number:b}'[::-1]
print(int_to_reverse_binary(100))
输出:
0010011
def string_reverse(input_string):
reverse_binary = ''
for letter in reversed(input_string):
reverse_binary += letter
return reverse_binary
def int_to_reverse_binary(integer_value):
binary = ''
while integer_value > 0:
binary += str(integer_value % 2)
integer_value = integer_value // 2
return (binary)
if __name__ == '__main__':
integer_value = int(input())
print(f'{string_reverse(int_to_reverse_binary(integer_value))}')