Menlo 发表于 2024-3-19 20:53:37

新新手python超简单困惑,给鱼币求教,谢谢各位大佬们!!

以下程序跑不了,不知道哪里出了错QAQ , 各位大神大佬资深码农哥哥姐姐们帮我看看吧,求求惹Orz:

设想是用户打出流行词,如果搜索到流行词则程序结束,没搜到就让用户把对应定义打出并把定义加进程序里,然后程序重复提问,加入/改写新定义最多4词,之后程序结束。

pop_noun={"栓Q":'这一条其实是一组流行语,虽然字面有个“谢(栓)”,但实际上主要用来表达大无语状态或是非常厌烦的情绪,并非真的用来表示对他人的感谢。',
         "PUA":'在一段网络采访视频中,受访者因口误将“PUA”说成了“CPU”,网友们觉得有趣而开始玩梗,故意将“PUA”说成“CPU”或者“KTV”“PPT”“ICU”。',
         "大冤种":'“冤种”一词来自东北地区方言,原指因为蒙受委屈而闷闷不乐的人,如今网络中常用此词来泛指做了傻事的人,即冤大头、倒霉鬼等。'}
pop_noun["小镇做题家"]='根据豆瓣用户“水果糖”的总结,“小镇做题家”指的是那些“出身小城,埋头苦读,擅长应试,但缺乏一定视野和资源的青年学子”'
pop_noun["团长"]='在疫情期间不畏风险,各显神通,无偿组织团购和分发生活物资,被居民们亲切地称为“团长”'

n=3
while n>=0:
    required_buzzword=print("type a buzzword")

    if required_buzzword in pop_noun:
      print("the meaning of the buzzword is"+pop_noun)
      break
   
    else:
      print("oh no! we cannot find this buzzword in our dictionary!")
      print("now we have" + len(pop_noun) + "definitions of buzzword in our dictionary")
      the definition=print("pls type the definition of the new buzzword here:")
      pop_noun["required_buzzword"]="the definition"
      print("thanks! we record the denifinition now! You can search it again!")
      n=n-1

FishC 发表于 2024-3-19 20:53:38

代码中存在一些语法错误和逻辑问题。下面是修正后的代码:

pop_noun = {"栓Q": '这一条其实是一组流行语,虽然字面有个“谢(栓)”,但实际上主要用来表达大无语状态或是非常厌烦的情绪,并非真的用来表示对他人的感谢。',
            "PUA": '在一段网络采访视频中,受访者因口误将“PUA”说成了“CPU”,网友们觉得有趣而开始玩梗,故意将“PUA”说成“CPU”或者“KTV”“PPT”“ICU”。',
            "大冤种": '“冤种”一词来自东北地区方言,原指因为蒙受委屈而闷闷不乐的人,如今网络中常用此词来泛指做了傻事的人,即冤大头、倒霉鬼等。'}

n = 4
while n > 0:
    required_buzzword = input("请输入一个流行词:")

    if required_buzzword in pop_noun:
      print("这个流行词的含义是:" + pop_noun)
      break

    else:
      print("很抱歉,我们的字典中找不到这个流行词!")
      print("目前我们的字典中有", len(pop_noun), "个流行词的定义。")
      definition = input("请输入这个新流行词的定义:")
      pop_noun = definition
      print("谢谢!我们已经记录了这个定义!你可以再次搜索它!")
      n -= 1

修正后的代码解决了以下问题:

1. `print` 函数无法将用户输入作为结果存储在 `required_buzzword` 变量中。应该使用 `input` 函数接收用户输入。

2. `pop_noun` 变量被多次赋值,最终变成了字符串而不是字典。应该保持其为字典类型。

3. 在打印字典长度时,应该使用 `str` 函数将整数转换为字符串。

4. `the definition` 是无效的变量名,应改为有效的变量名 `definition`。

通过以上修改,代码将按预期运行并实现所需功能。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

Menlo 发表于 2024-3-21 16:20:42

FishC 发表于 2024-3-19 20:54
代码中存在一些语法错误和逻辑问题。下面是修正后的代码:




1.为什么 the definition 是无效的变量名? 哪些变量名是无效的?
2.如何正确的在已有字典里添加键值对?
3. 我修改后的代码如下:

pop_noun={"栓Q":'这一条其实是一组流行语,虽然字面有个“谢(栓)”,但实际上主要用来表达大无语状态或是非常厌烦的情绪,并非真的用来表示对他人的感谢。',
         "PUA":'在一段网络采访视频中,受访者因口误将“PUA”说成了“CPU”,网友们觉得有趣而开始玩梗,故意将“PUA”说成“CPU”或者“KTV”“PPT”“ICU”。',
         "大冤种":'“冤种”一词来自东北地区方言,原指因为蒙受委屈而闷闷不乐的人,如今网络中常用此词来泛指做了傻事的人,即冤大头、倒霉鬼等。'}
pop_noun["小镇做题家"]='根据豆瓣用户“水果糖”的总结,“小镇做题家”指的是那些“出身小城,埋头苦读,擅长应试,但缺乏一定视野和资源的青年学子”'
pop_noun["团长"]='在疫情期间不畏风险,各显神通,无偿组织团购和分发生活物资,被居民们亲切地称为“团长”'

n=3
while n>=0:
    required_buzzword=input("type a buzzword")

    if required_buzzword in pop_noun:
      print("the meaning of the buzzword is"+pop_noun)
      break
   
    else:
      print("oh no! we cannot find this buzzword in our dictionary!")
      print("now we have" + str(len(pop_noun)) + "definitions of buzzword in our dictionary")
      definition=print("pls type the definition of the new buzzword here:")
      pop_noun["required_buzzword"]="definition"
      print("thanks! we record the denifinition now! You can search it again!")
      n=n-1
         

FishC 发表于 2024-3-21 16:21:11

Menlo 发表于 2024-03-21 16:20
1.为什么 the definition 是无效的变量名? 哪些变量名 ...

1. `the definition` 是无效的变量名,是因为变量名不能包含空格。合法的变量名应由字母、数字和下划线组成,并且不能以数字开头。

2. 要在已有字典中添加键值对,可以使用以下语法:
pop_noun = value
其中 `key` 是要添加的键,`value` 是对应的值。

3. 修改后的代码还存在一些问题:
- 在第7行和第9行,应该使用大括号 `{}` 而不是单引号 `'` 来创建字典。
- 在第12行,`print` 函数应该移除,只需赋值给变量 `definition` 即可,如 `definition = input("请输入这个新流行词的定义:")`。
- 在第15行,将字符串 `"definition"` 赋值给 `pop_noun` 没有意义,应该将用户输入的定义赋值给它,如 `pop_noun = definition`。

修正后的代码应该如下所示:
pop_noun = {"栓Q": '这一条其实是一组流行语,虽然字面有个“谢(栓)”,但实际上主要用来表达大无语状态或是非常厌烦的情绪,并非真的用来表示对他人的感谢。',
            "PUA": '在一段网络采访视频中,受访者因口误将“PUA”说成了“CPU”,网友们觉得有趣而开始玩梗,故意将“PUA”说成“CPU”或者“KTV”“PPT”“ICU”。',
            "大冤种": '“冤种”一词来自东北地区方言,原指因为蒙受委屈而闷闷不乐的人,如今网络中常用此词来泛指做了傻事的人,即冤大头、倒霉鬼等。'}

n = 3
while n >= 0:
    required_buzzword = input("请输入一个流行词:")
    if required_buzzword in pop_noun:
      print("这个流行词的含义是:" + pop_noun)
      break
    else:
      print("很抱歉,我们的字典中找不到这个流行词!")
      print("目前我们的字典中有", len(pop_noun), "个流行词的定义。")
      definition = input("请输入这个新流行词的定义:")
      pop_noun = definition
      print("谢谢!我们已经记录了这个定义!你可以再次搜索它!")
      n -= 1

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
页: [1]
查看完整版本: 新新手python超简单困惑,给鱼币求教,谢谢各位大佬们!!