- 论坛徽章:
- 0
|
做了一个小练习, 逆序输出一个四位数。
写了一个函数,可以选择4种方法执行。
可是执行的时候不管输入数字几都输出num error
#输入一个四位数,逆序输出
def reverse(a):
print("*" * 10, "1.使用字符串切片操作", "*" * 10)
print("*" * 10, "2.使用字符串索引和连接操作", "*" * 10)
print("*" * 10, "3.使用for循环", "*" * 10)
print("*" * 10, "4.使用数学方法", "*" * 10)
num = input("输入选择的方法")
b = ""
if num == 1:
b == str(a)[::-1]
elif num == 2:
b = str(a)[3]+str(a)[2]+str(a)[1]+str(a)[0]
elif num == 3:
for i in str(a):
b = i + b
elif num == 4:
gw = int(a)%10
sw = int(a)//10%10
bw = int(a)//10//10%10
qw = int(a)//1000
b = gw*1000+sw*100+bw*10+qw
# b = str(gw)+str(sw)+str(bw)+str(qw)
else:
print("error num")
print(b)
a = input("请输入一个四位数:")
reverse(a)
运行结果:请输入一个四位数:8765********** 1.使用字符串切片操作 ******************** 2.使用字符串索引和连接操作 ******************** 3.使用for循环 ******************** 4.使用数学方法 **********输入选择的方法3error num
然后我在调试的时候发现一个问题,将代码略作修改就可以正常运行修改后的代码:#输入一个四位数,逆序输出
def reverse(a):
print("*" * 10, "1.使用字符串切片操作", "*" * 10)
print("*" * 10, "2.使用字符串索引和连接操作", "*" * 10)
print("*" * 10, "3.使用for循环", "*" * 10)
print("*" * 10, "4.使用数学方法", "*" * 10)
num = input("输入选择的方法")
b = ""
if num == 1:
b == str(a)[::-1]
elif num == 2:
b = str(a)[3]+str(a)[2]+str(a)[1]+str(a)[0]
elif num == 3:
for i in str(a):
b = i + b
else:
gw = int(a)%10
sw = int(a)//10%10
bw = int(a)//10//10%10
qw = int(a)//1000
b = gw*1000+sw*100+bw*10+qw
# b = str(gw)+str(sw)+str(bw)+str(qw)
print(b)
a = input("请输入一个四位数:")
reverse(a)
以上代码可以正常运行差别就在于最后num==4的时候直接写成else的情况请教一下差别在哪里呢???
|
|