# yci助手
import random
# 机构名称/电话号码字符串
phone_numbers_str = "匪警[110],火警[119],急救中心[120],道路交通事故报警[122],水上求救专用电话[12395],天气预报[12121],报时服务[12117],森林火警[12119],电力服务[95598],红十字会急救台[999],公安短信报警[12110],通用紧急求救[112],信产部IP/网站备案[010-66411166]"
# 天气字符串
weather_str = "北京,2019年1月12日,多云,8°C,-4°C,南风3级~上海,2019年1月12日,小雨,9°C,6°C,北风2级~广州,2019年1月12日,阵雨转多云,22°C,15°C,持续无风向微风"
# 1. 生成双色球
# 规则:生出指定组数的双色球号码,
# 每组7个号码,前6个号码为1-33之间的随机数,最后一位为1-16之间的随机数
def generate_unionlotto(number):
for j in range(0, number):
# 前6个红球范围1~33
for i in range(0, 6):
red = random.randint(1, 33)
print(red, end="\t")
# 最后一个篮球范围1~16
blue = random.randint(1, 16)
print(blue)
# 2. 根据关键字找出对应机构名称或电话号码
def find_phone(keyword):
phone_numbers = phone_numbers_str.split(",")
for phone in phone_numbers:
# str.find():返回的是下标,没有找到则返回-1
if phone.find(keyword) != -1:
print(phone)
# 3. 根据城市名称找出对应天气预报
def get_weather(city): # 以~分割天气字符串
city_list = weather_str.split("~")
weather_list = {}
for i in range(0, len(city_list)): # 以,分割城市相关信息
w = city_list[i].split(",") # 以字典形式接收城市信息
weather = dict(city=w[0], date=w[1], weather=w[2], max=w[3], min=w[4], wind=w[5])
weather_list[weather["city"]] = weather # 若城市名存在,输出对应城市的天气信息
if city in weather_list:
return weather_list.get(city) # 城市名不存在,输出空字典
else:
return {}
while True:
print("1. 双色球随机选号")
print("2. 号码百世通")
print("3. 明日天气预报")
print("0. 结束程序")
c = input("请输入功能编号:")
# 1. 双色球随机选号
if c == "1":
n = input("请要生成几组双色球号码:")
generate_unionlotto(int(n))
# 2. 号码百世通
elif c == "2":
n = input("请输入您要查询的机构或电话号码:")
find_phone(keyword=n)
# 3. 明日天气预报
elif c == "3":
n = input("请输入你想要查询天气的城市:")
w = get_weather(n) # 若字典中含有key值“city”,则表示返回的不是空字典,则输出天气信息
if "city" in w:
print("{date} {weather} {max} {min} {wind}".format_map(w))
else:
print("未找到{}的天气数据".format(n))
# 0. 结束程序
elif c == "0":
break
else:
print("请输入正确的功能选项")
print("=============================")
print("感谢您的使用!祝您生活愉快!再见")
效果图:
- 双色球
- 号码百事通
- 天气预报