为什么这里要获取city,代码并没有看到有对应的值啊?

为什么这里要获取city,代码并没有看到有对应的值啊?

def get_weather(city):
   city_list = weather_str.split("~")
   for i in range(0, len(city_list)):
       w = city_list[i].split(",")  

       weather_date = {}
       weather = {"name": w[0], "date": w[1], "weather": w[2], "max": w[3], "min": w[4], "wind": w[5]}  

       weather_date[weather["name"]] = weather  
       if city in weather_date:
           return weather_date.get(city)     这里的city是指 def get_weather(city) 这里的吗?看不懂

       else:
           return {}


这段函数代码太绕了,老师可以解释下吗??看不明白

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕燕燕 2020-07-10 12:03:06

同学你好,可以按照下面的思路再理解一下这段代码

1.函数get_weather(city)参数city表示要查询的城市名称

2.代码中weather_date = {}放在for循环外部,存储所有城市对应的天气数据

3.for循环实现所有城市天气数据的存储,每循环一次,将一个城市的天气数据存储到weather_date中

4.if语句放在for循环外部,所有城市的天气数存储完成之后,再进行if条件判断

http://img1.sycdn.imooc.com//climg/5f07e86f0936bd3c05540359.jpg

如果我的回答解决了您的疑惑,请采纳!祝学习愉快~~~~

  • 提问者 慕码人7525953 #1
    老师,这里为什么要判断 “name”?这个“name”和输入的 n 是同个值吗? n = input("请输入您要查询的城市天气:") w = get_weather(n) if "name" in w: print("{date} {name} {weather} {max}/{min} {wind}".format_map(w)) else: print("查询不到{0}的天气数据".format(n))
    2020-07-10 23:04:14
  • 好帮手慕美 回复 提问者 慕码人7525953 #2
    同学,你好。 1、'name'和n不是同个值,'name'是字典w中的key,n是对应的value值 2、'name' in w用于判断name关键字是否在w字典中,如果在w字典中则说明城市信息存在并打印出来,如果不在w字典中,则说明城市信息不存在。 3、w是get_weather()方法返回的城市信息,若返回的是空字典,则if条件判断不成立。祝学习愉快~~~~
    2020-07-11 10:13:43
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
1.Python零基础入门
  • 参与学习           人
  • 提交作业       2727    份
  • 解答问题       8160    个

想要进入Python Web、爬虫、人工智能等高薪领域,你需要掌握本阶段的Python基础知识,课程安排带你高效学习轻松入门,学完你也能听得懂Python工程师的行业梗。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师