为了账号安全,请及时绑定邮箱和手机立即绑定

麻烦大神看下,这个为什么错的,新人不懂

麻烦大神看下,这个为什么错的,新人不懂

 d = set(['Jan','Fed','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec']) 

str = input ("请输入月份:")

for i in d:     

    if d[i] in str:        

        print 'ok'    

    else:       

         print 'error'

正在回答

4 回答

d = set(['Jan','Fed','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec']) 

str = raw_input(u'请输入月份:')

if str in d:

    print 'ok'

else:

    print 'error'

用raw_input,而input 等于 eval(raw_input()) ,意思是要执行用户输入的代码的

1 回复 有任何疑惑可以回复我~
#1

qq_慕工程0398433 提问者

非常感谢!
2016-11-17 回复 有任何疑惑可以回复我~

# -*- coding: utf-8 -*-
d = set(['Jan','Fed','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'])

str = raw_input ("请输入月份:")
if str in d:        
    print 'ok'    
else:       
    print 'error'

0 回复 有任何疑惑可以回复我~

d是集合类型,是无序的,不能用索引方式遍历,换种方式

0 回复 有任何疑惑可以回复我~
#1

qq_慕工程0398433 提问者

那应该怎么写呢?
2016-11-17 回复 有任何疑惑可以回复我~
  1. str = raw_input("请输入月份:")

  2. 或者仍旧使用 input(), 但是在执行的时候输入字符串要用单引号扩起来。例如输入, 'May'.

0 回复 有任何疑惑可以回复我~
#1

qq_慕工程0398433 提问者

还是错误的: Traceback (most recent call last): File "E:\python\Notepad++\1117.py", line 4, in <module> if d[i] == i: TypeError: 'set' object has no attribute '__getitem__'
2016-11-17 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
初识Python
  • 参与学习       758625    人
  • 解答问题       8667    个

学python入门视频教程,让你快速入门并能编写简单的Python程序

进入课程

麻烦大神看下,这个为什么错的,新人不懂

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信