练习问题
sdate =conts = ['摩羯座','水瓶座','双鱼座','白羊座','金牛座','双子座','巨蟹座','狮子座','处女座','天秤座','天蝎座','射手座']
birth = input('请输入你的出生年月日,格式为:2001-01-22\n').strip('')
cbir = birth.split('-')
cmonth = str(cbir)
cdate = str(cbir)
def conts(cmonth,cdate):
if int(cdate) <= sdate:
print(conts)
else:
print(conts)
conts(cmonth,cdate)
这是别的书本的一道练习题,想根据出生日期判断星座,不知道为啥出来的是'function' object is not subscriptable
有哪位大佬能帮我看一下为什么吗??谢谢 函数名跟第二行变量名重复了,改一下函数名就OK了 本帖最后由 jackz007 于 2020-12-29 15:26 编辑
标识符冲突
conts = ['摩羯座','水瓶座','双鱼座','白羊座','金牛座','双子座','巨蟹座','狮子座','处女座','天秤座','天蝎座','射手座']
. . . . . .
def conts(cmonth,cdate):
导致语句
print(conts)
else:
print(conts)
标识符 conts 被当作函数,所以报错。
解决方法,只要修改上述两个标识符中的任何一个都可以解决问题。
此外,楼主代码的 sdate 数组只有 11 个月的数据,缺了 1 个月的
下面是本人写的代码,谨供楼主参考
sdate =
conts = ['水瓶','双鱼','白羊','金牛','双子','巨蟹','狮子','处女','天秤','天蝎','射手','摩羯']
m , d = map(int , input('请输入你的出生月日(格式为:月 日) : ') . strip() . split())
if d < sdate : m -= 1
if m < 1 : m = 12
print(conts + '座')
页:
[1]