文章目录

  • 启发
  • 1.接收
  • 1.1接收
  • 1.2判断
  • 2.处理
  • 2.1整理日期
  • 2.2处理并输出
  • 2.2.2判断
  • 2.2.2.2补充判断
  • 运行一下


启发

我们已经做了很多项目,今天我们就用python写一个星座查询的代码吧。

1.接收

1.1接收

接收很简单,用input()就行了。存储在a中。

a=input("请输入你的出生日期:")

1.2判断

接下来我们要判断用户输入的是不是数字。如果是,就打印出来。如果不是,就输出错误提示并让用户重新输入。写在循环里,再用isdigit()搞定它。

while True:
	a=input("请输入你的出生日期:")
	if a.isdigit():
		print("出生日期是",a)
		break
	else:
		print("请输入正确内容")

当然,也会有其他的输入错误,这里就不一一来说了。

2.处理

2.1整理日期

首先,我们把12星座的日期整理出来。

星座

日期

水瓶座

0120-0218

双鱼座

0219-0320

白羊座

0321-0419

金牛座

0420-0520

双子座

0521-0621

巨蟹座

0622-0722

狮子座

0723-0822

处女座

0823-0922

天秤座

0923-1023

天蝎座

1024-1122

射手座

1123-1221

魔羯座

1222-0119

把它们存在字典s里。

s={"水瓶座":"0120-0218","双鱼座":"0219-0320","白羊座":"0321-0419","金牛座":"0420-0520","双子座":"0521-0621","巨蟹座":"0622-0722","狮子座":"0723-0822","处女座":"0823-0922","天秤座":"0923-1023","天蝎座":"1024-1122","射手座":"1123-1221","魔羯座":"1222-0119"}

while True:
	a=input("请输入你的出生日期:")
	if a.isdigit():
		print("出生日期是",a)
		break
	else:
		print("请输入正确内容")

接着,只需要把用户输入的内容转换为数字,然后判断一下就可以了。
例如,用户输入0628,转换成数字就是628,在 “巨蟹座”:“0622-0722” 的622和722之间,所以是巨蟹座。

2.2处理并输出

首先,把a转换成数字。

s={"水瓶座":"0120-0218","双鱼座":"0219-0320","白羊座":"0321-0419","金牛座":"0420-0520","双子座":"0521-0621","巨蟹座":"0622-0722","狮子座":"0723-0822","处女座":"0823-0922","天秤座":"0923-1023","天蝎座":"1024-1122","射手座":"1123-1221","魔羯座":"1222-0119"}

while True:
	a=input("请输入你的出生日期:")
	if a.isdigit():
		print("出生日期是",a)
		break
	else:
		print("请输入正确内容")

a=int(a)

接着,在循环里查找出a对应的星座(用查找键值对的方法)。用d存储它们,并分别存入d1和d2。

s={"水瓶座":"0120-0218","双鱼座":"0219-0320","白羊座":"0321-0419","金牛座":"0420-0520","双子座":"0521-0621","巨蟹座":"0622-0722","狮子座":"0723-0822","处女座":"0823-0922","天秤座":"0923-1023","天蝎座":"1024-1122","射手座":"1123-1221","魔羯座":"1222-0119"}

while True:
	a=input("请输入你的出生日期:")
	if a.isdigit():
		print("出生日期是",a)
		break
	else:
		print("请输入正确内容")

a=int(a)
for i in s:
	d = s[i].split('-')
    d1 = int(d[0])
    d2 = int(d[1])

2.2.2判断

判断部分很简单,用if判断a是否在d1和d2之间就行。

s={"水瓶座":"0120-0218","双鱼座":"0219-0320","白羊座":"0321-0419","金牛座":"0420-0520","双子座":"0521-0621","巨蟹座":"0622-0722","狮子座":"0723-0822","处女座":"0823-0922","天秤座":"0923-1023","天蝎座":"1024-1122","射手座":"1123-1221","魔羯座":"1222-0119"}

while True:
	a=input("请输入你的出生日期:")
	if a.isdigit():
		print("出生日期是",a)
		break
	else:
		print("请输入正确内容")

a=int(a)
for i in s:
    d = s[i].split('-')
    d1 = int(d[0])
    d2 = int(d[1])
    if a >= d1 and a <= d2:
        print('你的星座是:', i)
        break
2.2.2.2补充判断

写完之后我们发现,查不了魔羯座。因为它横跨了一年。我们可以把它拆成2部分。一个是1222-1231,一个是0101-119。我们把它单独放在两个if里单独输出就行了。

s={"水瓶座":"0120-0218","双鱼座":"0219-0320","白羊座":"0321-0419","金牛座":"0420-0520","双子座":"0521-0621","巨蟹座":"0622-0722","狮子座":"0723-0822","处女座":"0823-0922","天秤座":"0923-1023","天蝎座":"1024-1122","射手座":"1123-1221","魔羯座":"1222-0119"}

while True:
	a=input("请输入你的出生日期:")
	if a.isdigit():
		print("出生日期是",a)
		break
	else:
		print("请输入正确内容")

a=int(a)
for i in s:
    d = s[i].split('-')
    d1 = int(d[0])
    d2 = int(d[1])
    if a >= d1 and a <= d2:
        print('你的星座是:', i)
        break
    if a>=1222 and a<=1231:
        print("你的星座是摩羯座")
        break
    if a>=0101 and a<=119:
        print("你的星座是摩羯座")
        break

这样就完美了。
(全部代码)

s={"水瓶座":"0120-0218","双鱼座":"0219-0320","白羊座":"0321-0419","金牛座":"0420-0520","双子座":"0521-0621","巨蟹座":"0622-0722","狮子座":"0723-0822","处女座":"0823-0922","天秤座":"0923-1023","天蝎座":"1024-1122","射手座":"1123-1221","魔羯座":"1222-0119"}

while True:
	a=input("请输入你的出生日期:")
	if a.isdigit():
		print("出生日期是",a)
		break
	else:
		print("请输入正确内容")

a=int(a)
for i in s:
    d = s[i].split('-')
    d1 = int(d[0])
    d2 = int(d[1])
    if a >= d1 and a <= d2:
        print('你的星座是:', i)
        break
    if a>=1222 and a<=1231:
        print("你的星座是摩羯座")
        break
    if a>=0101 and a<=119:
        print("你的星座是摩羯座")
        break

运行一下

Python星座 python星座查询器_Python星座