在我的代码中,我已将用户的输入转换为列表,并且我希望根据数字的位置将用户的输入乘以3或1.例如,如果用户输入" 8748935",数字8,4,9和5将乘以3,因为它们的位置是奇数,7,8和3乘以1.在将所有7个数字相乘后,我想添加它们并输出结果。 我目前的代码:
NumGiven=''
while not NumGiven.isnumeric():
NumGiven=(input('Please enter a 7 or 8 digit number:'))
while len(NumGiven)<7 or len(NumGiven)>8:
NumGiven=(input('Please enter a 7 or 8 digit number:'))
if len(NumGiven)==8:
list=[int(i) for i in NumGiven]
total=(sum([int(i) for i in NumGiven]))
ans = total / 10.0
if total % 10 == 0:
print("Your GTIN8 code is correct.")
else:
print("Your GTIN8 code is incorrect")
if len(NumGiven)==7:
list=[int(x) for x in str(NumGiven)]
答案 0 :(得分:0)
因为您将输入作为列表; [8,7,4,8,9,3,5]你可以迭代它们并适用算法
if len(NumGiven)==8:
sum = 0
list=[int(i) for i in NumGiven]
for x in list:
if list.index(x)%2 == 0:
sum += int(x)*3 //will be applied to even indexed elements
else:
sum += int(x) //will be applied to odd indexed elements
print sum
其中i%2检查索引是偶数还是奇数(Python和我不同意你对8,4,9和5的意见是奇数索引,因为列表从索引0开始,这使得索引为数字0,2,4和6)
答案 1 :(得分:0)
我有一个很好的方式(我希望)
$("table select").on("change", function(){
var x=$(this).find(":selected").val();
var y=$(this).closest("td").siblings().find(":selected").val();
$(this).closest("td").siblings().find("input").val(x*y);
});
如果您希望数字长度为7,请取消注释我所说的位,它会正常工作。
答案 2 :(得分:-1)
我老师帮帮我,
if len(NumGiven)==7:
Num0=int(NumGiven[0])*3
Num1=int(NumGiven[1])*1
Num2=int(NumGiven[2])*3
Num3=int(NumGiven[3])*1
Num4=int(NumGiven[4])*3
Num5=int(NumGiven[5])*1
Num6=int(NumGiven[6])*3
print(Num0,Num1,Num2,Num3,Num4,Num5,Num6)
total=(Num0+Num1+Num2+Num3+Num4+Num5+Num6)
print(total)