描述
"水仙花数"是指一个三位整数,其各位数字的3次方和等于该数本身。
例如:ABC是一个"3位水仙花数",则:A的3次方+B的3次方+C的3次方 = ABC。
请按照从小到大的顺序输出所有的3位水仙花数,请用"逗号"分隔输出结果(输出示例:111,222)
我想到了.append()
方法,决定用列表。数字位数的提取,我用的是数值运算。
list.append(obj)
把对象(obj)添加到列表末尾。
ls = []
for i in range(100, 1000):
a = i // 100
b = i // 10 % 10
c = i % 100 % 10
d = a**3 + b**3 + c**3
if d == i:
ls.append(i)
如果这时print(ls)
会是一个列表,不符合题目要求。需要转换成字符串形式:
m = ''
for n in ls:
m += str(n) + ","
print(m)
这样输出就符合要求了。
平台给出的答案用的是字符串,用索引<字符串>[值]
来提取位数。
s = ""
for i in range(100, 1000):
t = str(i)
if pow(eval(t[0]),3) + pow(eval(t[1]),3) + pow(eval(t[2]),3) == i :
s += "{},".format(i)
print(s[:-1])
描述
给用户三次输入用户名和密码的机会,要求如下:
1)如输入第一行输入用户名为‘Kate’,第二行输入密码为‘666666’,输出‘登录成功!’,退出程序;
2)当一共有3次输入用户名或密码不正确输出“3次用户名或者密码均有误!退出程序。”。
我用的是计数遍历循环的扩展模式else
for i in range(3):
a = input()
b = input()
if a == "Kate" and b == "666666":
print("登录成功!")
break
else:
print("3次用户名或者密码均有误!退出程序。")
下面是平台给出的答案,用的是无限循环和一个单分支结构。
count = 0
while count < 3:
name = input()
password = input()
if name == 'Kate'and password == '666666':
print("登录成功!")
break
else:
count += 1
if count == 3:
print("3次用户名或者密码均有误!退出程序。")