Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
";男人去割草了;为我的家庭作业用Python押韵_Python - Fatal编程技术网

";男人去割草了;为我的家庭作业用Python押韵

";男人去割草了;为我的家庭作业用Python押韵,python,Python,我们必须写一个程序,就像孩子们押韵一个人去割草一样。我们必须使用列表来实现这一点。我的老师不太担心人与人的正确英语 这是押韵的一个环节 这就是我目前所拥有的 men = input ('enter how many men you would like to mow the meadow') menmow = 1 menlist = [] while menmow <men: print str(menmow) + ' man went to mow' print 'went

我们必须写一个程序,就像孩子们押韵一个人去割草一样。我们必须使用列表来实现这一点。我的老师不太担心人与人的正确英语

这是押韵的一个环节

这就是我目前所拥有的

men = input ('enter how many men you would like to mow the meadow')
menmow = 1
menlist = []
while menmow <men:
   print str(menmow) + ' man went to mow'
   print 'went to mow a meadow'
   print 'one man and his dog'
   print 'went to mow a meadow'
   menlist.insert [0.2]
if menmow >men:
   print 'your meadow has been mowed'
men=input('输入您想在草地上割草的人数')
menmow=1
menlist=[]
而男人们:
打印“你的草地已被修剪”

对于初学者,您有一个无限循环(while循环永远不会终止)。

如果您使用的是Python 2.x,那么
input()
函数将像执行Python代码一样执行该语句。那可能不是你想要的。此外,您尝试执行
menmow
,这将是int和字符串之间的无效比较

将输入语句更改为:

men = int(raw_input ('enter how many men you would like to mow the meadow'))
您还需要一条语句来结束循环。它将无限期运行,因为循环条件不关心
menlist


最后,
menlist.insert[0.2]
的语法无效。请务必检查如何将值插入列表。

您完全是这样的。有些细节是错误的,您将在测试时发现。缺少的是正确执行“一人一狗”的路线。每个对联都应该改变

您可以创建第二个循环,以输出一人、两人等。提示:
打印“text”
将打印文本,但不打印换行符

或者,您可以使用for循环将文本构建为列表,然后输出该列表。就像在主循环中一样,您可以保留一个计数器并将
str(counter)+“man”
附加到列表中。
若要将此列表作为字符串输出,请使用
'.join(list)
menlist.insert[0.2]
无效;最终会出现一个神秘的错误,如
“内置函数”或“方法”对象没有属性“\uuuu getitem\uuuu”

由于
insert
是一个函数,请使用函数调用语法:
menlist.insert(0,2)
在列表开头插入
2
(在索引
0

  • 只需使用
    for
    循环和
    range()
    对象,就可以简化
    while
    循环
  • 使用函数。他们是你的朋友
  • 使用
    ,”将列表的内容连接在一起。连接(您的列表)
下面是我如何解决这个问题的:

def lyrics(men):
  verses = []

  verses.append(str(len(men)) + ' men went to mow,')
  verses.append('Went to mow a meadow,')
  verses.append(', '.join(reversed(men)) + ' and his dog,')

  return '\n'.join(verses)

num_men = int(raw_input('How many men will mow the meadow? '))

song = []
men = []

for man in range(1, num_men + 1):
  men.append(str(man) + ' men')
  song.append(lyrics(men))

print '\n\n'.join(song)
print
print 'your meadow has been mowed'
要让你的代码说出真正的歌曲(带有拼写出来的数字),请使用字典将数字映射到单词:

num_men = int(raw_input('How many men will mow the meadow? '))

def lyrics(men):
    return '{num_men} went to mow,\nWent to mow a meadow,\n{men} and his dog'.format(
      num_men=len(men),
      men=', '.join(reversed(men)).capitalize()
  )

song = []
men = []

numbers = {
    1: 'one',
    2: 'two',
    3: 'three',
    4: 'four',
    5: 'five',
    6: 'six',
    7: 'seven',
    8: 'eight',
    9: 'nine'
}

for man in range(1, num_men + 1):
    men.append('{} {}'.format(numbers[man], 'man' if man == 1 else 'men'))
    song.append(lyrics(men))

print '\n\n'.join(song)
print
print 'your meadow has been mowed'

我看到了这个问题,决定尝试一下,只是为了见鬼。以下是我的想法。
由于用户输入必须是数字,因此您需要创建一个字典,将数字映射到数字(用文字表示,例如,1变为1)。为了创建字典,您需要知道用户将输入的最大值

用那样的数字代替文字中的数字
我选择了第二种选择;这是代码;你可以随意处理它

def one_man(): return """ One man went to mow,\n Went to mow a meadow, \n One man and his dog, \n Went to mow a meadow.\n

      """;
定义多人(人数、整理人数): 返回“” {0}人去割草了,\n 去割草,\n {1} 1人和他的狗,\n 去割草了。\n """ . 格式(人数、核对人数)

def校对人员(人数): 结果=”; 当人数>1时: 结果+=“{0}人,”。格式(人数); 男子人数-=1; 返回结果

如果name==“main”: 序言=“要退出此程序,请在提示”时键入y或n”; 打印序言

loop=True;
while循环:
序言=原始输入(“是否要退出程序?”);是/否:“”;
如果前导==“y”:
循环=假;
打破
其他:
num_of_men_value=原始输入(“输入您想与多少人一起修剪草地?”:“”);
尝试:
num_of_men=int(num_of_men_value);
如果人数小于1:
打印“数字必须大于0”;
elif num_of_men==1:
打印一张单子();
其他:
校对人数=校对人数(人数);
打印多人(人的数量、整理的人);
继续;
除:
打印“数字必须是有效数字”;
继续;

当您运行代码时,可能会出现堆栈跟踪。上面写了什么?@Mat谢谢你的更新。我想我需要经常去梅塔。谢谢你给了我一些其他的东西来消磨我的空闲时间(我希望网络不会丢弃讽刺的信息包。)欢迎!如果您描述您的代码当前正在做什么,它与您希望它做什么有什么不同,以及您在哪里陷入困境,这将很有帮助。在你的问题中给出一个所需输出的简短示例也很有帮助。你链接到的页面将来可能会消失,那么这个问题对未来的读者来说就没什么用处了。实际上,如果他在
input
中输入一个整数,那么
men
就是一个整数,所以
menmow
就可以了。(挑剔:字符串类型在Python中称为
str