不要用all 用for或者while循环
时间: 2024-12-17 17:23:23 浏览: 2
如果你不想使用`all()`函数,你可以使用`for`循环遍历输入字符串的每一个字符,并通过`if`条件判断每个字符是否为'0'或'1'。这里是一个例子,使用`for`循环实现同样的功能:
```python
def binary_to_decimal(binary_string):
decimal = 0
valid_chars = True # 初始化一个标志变量
for char in binary_string:
if char != '0' and char != '1':
valid_chars = False
break # 如果遇到非0和1的字符,跳出循环
decimal = decimal * 2 + int(char) # 将每一位二进制转换为十进制
if valid_chars:
return decimal
else:
print("错误:输入只能包含0和1。")
return None
# 示例
binary_input = input("请输入一个二进制数:")
result = binary_to_decimal(binary_input)
if result is not None:
print(f"{binary_input}转为十进制是{result}")
```
这个版本的代码首先初始化一个`valid_chars`标志变量为True,然后逐位检查输入的字符,如果发现非'0'和'1'的字符就将`valid_chars`设为False并停止循环。最后根据`valid_chars`的值决定是否继续计算转换后的十进制数。
阅读全文