本人刚学python,今天写一个将十进制整数转换为二进制的python程序时遇到一点问题,
如下图,
a=input("请输入待转换的十进制数字:")
b=a
def transform(num):
while num >= 1:
global str1
str1=''
if num % 2 == 0:
str1 += str(0)
else:
str1 += str(1)
num = num // 2
if float(a) % 1==0:
a = int(a)
transform(a)
print(f'str1是{str1}')
print(f"将{b}转换二进制,结果是:{str1[::-1]}")
请输入待转换的十进制数字:100
str1是1
将100转换二进制,结果是:1
我想让print语句可以访问到函数中的str1,因此使用global方法,
但是导致while循环只执行一次
while循环正常执行,程序可以将十进制整数转换为二进制
str1 = '' 放到循环外就行了
a = input("请输入待转换的十进制数字:")
b = a
str1 = ''
def transform(num):
while num >= 1:
global str1
if num % 2 == 0:
str1 += str(0)
else:
str1 += str(1)
num = num // 2
if float(a) % 1 == 0:
a = int(a)
transform(a)
print(f'str1是{str1}')
print(f"将{b}转换二进制,结果是:{str1[::-1]}")