|
|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
自己写了一个计算生肖和星座的小程序
在39行使用闭包写法的话就没有运行结果了,这是什么原因呢?
闭包写法只能返回函数中 return 的值吗?如果使用闭包写法有 print 输出结果怎么写呢?以下是我的代码
- import os
- print('该程序用来计算生肖和星座')
- constellation = (u'摩羯座',u'水瓶座',u'双鱼座',u'白羊座',u'金牛座',u'双子座',
- u'巨蟹座',u'狮子座',u'处女座',u'天秤座',u'天蝎座',u'射手座',)
- constellation_days = ((1,20),(2,19),(3,21),(4,21),(5,21),(6,22),
- (7,23),(8,23),(9,23),(10,23),(11,23),(12,23),)
- zodiac = '猴鸡狗猪鼠牛虎兔龙蛇马羊'
- save_list = []
- def Save():
- file1 = input('请输入要保存的文件名【需要带后缀名】:')
- with open(file1,'w') as f:
- f.writelines(save_list)
- def zodiac_china():
- brith_y = input('请输入出生年份:')
- brith_m = input('请输入出生月份:')
- brith_d = input('请输入出生日:')
- zodiac_y = zodiac[int(brith_y)%12]
- print('%s 的生肖是 %s'%(name,zodiac_y))
- def constell():
- for num in range(len(constellation_days)):
- if constellation_days[num] >= (int(brith_m),int(brith_d)):
- print('%s 的星座是:%s'%(name,constellation[num]))
- break
- elif int(brith_m) == 12 and int(brith_d) > 23:
- print('%s 的星座是:%s'%(name,constellation[0]))
- break
- print('是否保存记录【Y/N】')
- if input() in ['Y','N','y','n']:
- global save_list
- save_list.extend(['姓名:',name,' ',brith_y,' 年 ',brith_m,' 月 ',
- brith_d,' 日 ',(constellation[num]or constellation[0])])
- Save()
- print('保存成功')
- constell()
- name = input('请输入姓名:')
- zodiac_china()
复制代码 |
|