| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 978 人关注过本帖
标题:python初学者有个问题问问各位大佬
只看楼主 加入收藏
haun
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2018-10-30
收藏
 问题点数:0 回复次数:1 
python初学者有个问题问问各位大佬
运行代码,报错显示元组索引超出范围
 Traceback (most recent call last):
  File "C:/Users/15059/Desktop/Python/12222.py", line 11, in <module>
    b+=int(i)*t[n]
IndexError: tuple index out of range
注释第11行 n+=1 之后则不报错,萌新实在想不通为什么,求大佬解答
以下为代码:
图片附件: 游客没有浏览图片的权限,请 登录注册

t=(7,9,10,5,8,4,2,1,6,7,9,10,5,8,4,2)
f=(1,0,"x",9,8,7,6,5,4,3,2,1)
n,b=0,0
while 1:
    a=input("请输入身份证号:")
    if len(a)==18:
        break
    else:
        print("身份证长度错误,请重新输入!")
for i in a:
    b+=int(i)*t[n]
    n+=1
if b%11==t[b%11] and t[b%11]==a[18]:
    print("身份证号为真!")
    if int(a[17])%2==0:
        print("性别为女")
    else:
        print("性别为男")
else:
    print("身份证号为假!")

2018-10-30 13:08
傻眼猫咪
Rank: 2
等 级:论坛游民
威 望:1
帖 子:38
专家分:85
注 册:2021-8-2
收藏
得分:0 
樓主,你的t=(7,9,10,5,8,4,2,1,6,7,9,10,5,8,4,2)和f=(1,0,"x",9,8,7,6,5,4,3,2,1)打錯了

程序代码:
# 以下為我的代碼
factor = (7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2)
last = ('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2')

while True:
    try:
        id_num = list(map(int, (input('輸入18位身份證號:'))))
        if len(id_num) != 18:
            print('輸入錯誤')
            continue
        if id_num[16]%2 == 0: sex = '女性'
        else: sex = '男性'
        if last[((sum(list(map(lambda x: factor[x]*id_num[x], range(17)))))%11)-1] == str(id_num[-1]):
            print(sex)
        else: print('非法身份證,請重新', end = '')
    except ValueError:
        print('輸入錯誤,請重新', end = '')
        continue

2021-08-02 22:38
快速回复:python初学者有个问题问问各位大佬
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016082 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved