如何使用for循环产生与下面相同的结果? [英] How do I use a for loop to produce the same result as below?

查看:60
本文介绍了如何使用for循环产生与下面相同的结果?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已经制作了代码来生成NRIC检查程序,但我不确定如何将循环应用于此。 for循环对我的任务是强制性的。



我尝试过:



def main():



x =输入(在此处输入您的身份证号码:)
如果是len(x),则为
! = 9:

打印(请输入合法的身份证。)

else:

first = int(x [1])* int(2)

second = int(x [2])* int(7)

third = int(x [3])* int(6)

fourth = int(x [4])* int(5)

five = int(x [5])* int(4)

第六= int(x [6])* int(3)

第七= int(x [7])* int(2)

全球y

y =(第一+第二+第三+第四+第五+第六+第七)

h = int(y)%11

b = 0

如果h == 0:

b ==J

elif h == 1:

b ==Z

elif h == 2:

b ==我

elif h == 3:

b ==H

elif h == 4:

b ==G

elif h == 5:

b ==F

elif h == 6:

b == E

elif h == 7:

b ==D

elif h == 8:

b ==C

elif h == 9:

b ==B

else:

b ==A

如果b == x [8]:

print(有效。)

else:

打印(无效。)











main()

解决方案

类似于:

 y =  0  
mults = [ 2 7 6 5 , 4 3 2 ]
i 范围内( 0 6 ):
val = int(x [i])* mults [i]
y + = val


I have made code to produce a NRIC checker but am not sure on how to apply for loop into this. The for loop is compulsory for my assignment.

What I have tried:

def main():

x = input("Enter your NRIC number here:")
if len(x) != 9:
print ("Please enter a legitimate NRIC.")
else:
first = int(x[1]) * int(2)
second =int(x[2]) * int(7)
third =int(x[3]) * int(6)
fourth= int(x[4]) * int(5)
fifth= int(x[5]) * int(4)
sixth= int(x[6]) * int(3)
seventh= int(x[7]) * int(2)
global y
y = (first + second + third + fourth + fifth + sixth + seventh)
h = int(y) % 11
b = 0
if h == 0:
b == "J"
elif h == 1:
b == "Z"
elif h == 2:
b == "I"
elif h == 3:
b == "H"
elif h == 4:
b == "G"
elif h == 5:
b == "F"
elif h == 6:
b == "E"
elif h == 7:
b == "D"
elif h == 8:
b == "C"
elif h == 9:
b == "B"
else:
b == "A"
if b == x[8]:
print ("Valid.")
else:
print("Invalid.")





main()

解决方案

Something like:

y = 0
mults = [2,7,6,5,4,3,2]
for i in range(0,6):
    val = int(x[i]) * mults[i]
    y += val


这篇关于如何使用for循环产生与下面相同的结果?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆