All is well 3 idiots

AC小小常

【Python函数与模块】(6)实战:YCI助手

# 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("感谢您的使用!祝您生活愉快!再见")

 效果图:

1. 双色球

 2. 号码百事通

 3. 天气预报

 

posted on 2020-04-08 22:35  AC小小常  阅读(301)  评论(0)    收藏  举报

导航