我已经为此工作了两天。这就是作业所说的:
假设你有一个这样的列表值:
listToPrint = ['apples', 'bananas', 'tofu', 'cats']
编写一个程序,打印一个列表,其中所有项目用逗号和空格分隔,用"和"在最后一项之前插入。例如,上面的列表将打印'apples, bananas, tofu, and cats'
。但是你的程序应该能够处理任何列表,而不仅仅是上面显示的列表。因此,如果要打印的列表比上面的列表更短或更长,则需要使用循环。
这就是我到目前为止:
listToPrint = []
while True:
newWord = input("a, b, and c ")
if newWord == "":
break
else:
listToPrint.append(newWord)
答案 0 :(得分:1)
您展示的代码似乎解决了与您的任务要求的不同的问题。该作业的重点是{{1}来自提供的# -*- coding: utf-8 -*-
# content of test_gevent.py
import time
from django.test import TestCase
from django.db import connection
import gevent
def f(n):
cur = connection.cursor()
cur.execute("SELECT SLEEP(%s)", (n,))
cur.execute("SELECT %s", (n,))
cur.fetchall()
connection.close()
class GeventTestCase(TestCase):
longMessage = True
def test_gevent_spawn(self):
timer = time.time()
d1, d2, d3 = 1, 2, 3
t1 = gevent.spawn(f, d1)
t2 = gevent.spawn(f, d2)
t3 = gevent.spawn(f, d3)
gevent.joinall([t1, t2, t3])
cost = time.time() - timer
self.assertAlmostEqual(cost, max(d1, d2, d3), delta=1.0,
msg='gevent spawn not working as expected')
的值,而您的代码全部来自用户的print
项并将它们放入列表中。做一个然后另一个是有意义的,但是对于你在评论中给出的作业,list
代码完全无关紧要。
以下是我如何解决该任务(可能还有你还不了解的代码):
input
更“友好的新手”方法看起来更像是这样:
input
答案 1 :(得分:0)
我将如何做到这一点,但如果这是为了学校,请小心。如果我在下面做的任何事情都使用了尚未涵盖的功能或技术,那么你的导师会对你不满。
listToPrint = ['a', 'b', 'c']
def list_to_string(L, sep = '', last_sep = None):
if last _sep is None:
return sep.join(L)
else:
return sep.join(L[:-1]) + last_sep + L[-1]
print(list_to_string(listToPrint, sep = ', ', last_sep = ', and '))
这里有一个初学者版本:
listToPrint = ['a', 'b', 'c']
list_length = len(listToPrint)
result = ""
count = 0
for item in listToPrint:
count = count + 1
if count == list_length:
result = result + "and " + item
else:
result = result + item + ", "
这个只与列表中的一个项目一起使用。
答案 2 :(得分:-1)
初学者版本:
x = ['apples', 'bananas', 'tofu', 'cats']
print("'", end='')
for i in range(len(x)-2):
print(x[i], end=', ')
print(str(x[-2])+' and '+str(x[-1]),end='')
print("'")
输出:'apples, bananas, tofu and cats'
答案 3 :(得分:-1)
#printing the first element sep. so the list works
print(listToPrint[0], end="")
for i in range(1, len(listToPrint)-1):
print("," + listToPrint[i], end="") #this prints the middle elements
if(len(listToPrint) > 1):
print( " and " + listToPrint[-1], end="")