拨Q 发表于 2021-1-22 10:16

Python求助,22行和第6行咋错了

本帖最后由 拨Q 于 2021-1-22 11:01 编辑

# 1111
import random

class Eat:
    def __init__(self,a,b,c,e,f):
      foods =
    def judge(self):
      print('今晚吃什么?面条,米饭,屎,麻辣烫,汤圆')
      want = input('输入你想吃的:')
      if want in foods:
            print('好,就决定是%s了' %want)
      else:
            print('只有这些东西哦,那我帮你选吧')
            while True:
                robot_choice = random.choice(self.foods)
               # print('那我们吃%s好吗?' %robot_choice)
                Agree = input('那你吃%s好吗?' %robot_choice)
                if Agree == '好':
                  print('就这样决定了,吃%s' %robot_choice)
                  break

a1 = Eat('面条','米饭','屎','麻辣烫','汤圆')
a1.judge()
Python求助,22行和第6行咋错了,想了好久,网上也没有答案

拨Q 发表于 2021-1-22 11:17

本帖最后由 拨Q 于 2021-1-22 11:18 编辑

seaeast 发表于 2021-1-22 11:10
前面有人回答了。我这里只是想补充下,你这样写的话,有多少种食物,就要用多少个参数。那想写更多食物,那 ...
太棒了,又学会了新知识,记在小本本上,又可以完善一下:
# 智障晚上吃什么选择器
import random

class Eat:
    def __init__(self,*args):
      self.foods = [*args]
    def judge(self):
      print('今晚吃什么?面条,米饭,屎,麻辣烫,汤圆')
      want = input('输入你想吃的:')
      if want in self.foods:
            print('好,就决定是%s了' %want)
      else:
            print('只有这些东西哦,那我帮你选吧')
            try:
                while True:
                  robot_choice = random.choice(self.foods)
                   # print('那我们吃%s好吗?' %robot_choice)
                  Agree = input('那你吃%s好吗?' %robot_choice)
                  if Agree == '好':
                        print('就这样决定了,吃%s' %robot_choice)
                        break
                  else:
                        self.foods.remove(robot_choice)
                        continue
            except IndexError:
                print('都不吃就等饿死给你收尸吧')
   
a1 = Eat('面条','米饭','屎','麻辣烫','汤圆','奥利给')
a1.judge()

zhi54 发表于 2021-1-22 10:26

等待热心群友.

muyangf 发表于 2021-1-22 10:33

judge (self)
把第六行中间的空格删掉

忆白学渣 发表于 2021-1-22 10:33

没有传入值啊

拨Q 发表于 2021-1-22 10:35

muyangf 发表于 2021-1-22 10:33
judge (self)
把第六行中间的空格删掉

这个不影响

imyxuan 发表于 2021-1-22 10:35

3楼说得对,函数名字后面不能带空格,要直接跟括号

拨Q 发表于 2021-1-22 10:36

忆白学渣 发表于 2021-1-22 10:33
没有传入值啊

不是把'面条','米饭','屎','麻辣烫','汤圆'传入到abcdef吗

Ifover 发表于 2021-1-22 10:39

import random


class Eat:
    def __init__(self, a, b, c, e, f):
      self.foods =

    def judge(self):
      print('今晚吃什么?面条,米饭,屎,麻辣烫,汤圆')
      want = input('输入你想吃的:')
      if want in self.foods:
            print('好,就决定是%s了' % want)
      else:
            print('只有这些东西哦,那我帮你选吧')
            while True:
                robot_choice = random.choice(self.foods)
                # print('那我们吃%s好吗?' %robot_choice)
                Agree = input('那你吃%s好吗?' % robot_choice)
                if Agree == '好':
                  print('就这样决定了,吃%s' % robot_choice)
                  break


a1 = Eat('面条', '米饭', '屎', '麻辣烫', '汤圆')
a1.judge()


传参可以用list格式直接传给food 不然 ab,c,d,f好麻烦啊

拨Q 发表于 2021-1-22 10:40

imyxuan 发表于 2021-1-22 10:35
3楼说得对,函数名字后面不能带空格,要直接跟括号

对不起,搞错了,我本地的少复制了一行,现在改了,。
第6行是这个 foods =

老伙计 发表于 2021-1-22 10:40

import random

class Eat:
    def __init__(self,a,b,c,e,f):
      self . foods =
    def judge (self):
      print('今晚吃什么?面条,米饭,屎,麻辣烫,汤圆')
      want = input('输入你想吃的:')
      if want in self . foods:
            print('好,就决定是%s了' %want)
      else:
            print('只有这些东西哦,那我帮你选吧')
            while True:
                robot_choice = random.choice(self.foods)
               # print('那我们吃%s好吗?' %robot_choice)
                Agree = input('那你吃%s好吗?' % robot_choice)
                if Agree == '好':
                  print('就这样决定了,吃%s' % robot_choice)
                  break

a1 = Eat('面条','米饭','屎','麻辣烫','汤圆')
a1.judge()
页: [1] 2 3
查看完整版本: Python求助,22行和第6行咋错了