Python中是否有某种方法可以让特定的代码行继续到下一行?
基本上我有27个列表,分别命名为str1,str2,str3等等,所有的元素都是单词。使用random.choice()我从每个列表中选择一个随机单词,并将它们组合成一组随机单词。虽然我的问题是,一行特定的代码会有多长,因为我这样做了27个单词列表。所以我的问题是,在Python中是否有某种方式可以让特定的代码行继续到下一行?我知道这听起来像一个愚蠢的问题,哈哈,但这种情况经常发生在我身上,所以我只是想知道这是否是一件事。还有,如果不是(这可能不是lol),有没有什么方法可以让我不那么长的时间?我想我可以组合5个列表,然后再组合5个列表,然后在最后将它们全部添加到一起。如果将表达式括在括号中,则可以继续行。因此,上述内容将成为:Python中是否有某种方法可以让特定的代码行继续到下一行?,python,python-3.x,Python,Python 3.x,基本上我有27个列表,分别命名为str1,str2,str3等等,所有的元素都是单词。使用random.choice()我从每个列表中选择一个随机单词,并将它们组合成一组随机单词。虽然我的问题是,一行特定的代码会有多长,因为我这样做了27个单词列表。所以我的问题是,在Python中是否有某种方式可以让特定的代码行继续到下一行?我知道这听起来像一个愚蠢的问题,哈哈,但这种情况经常发生在我身上,所以我只是想知道这是否是一件事。还有,如果不是(这可能不是lol),有没有什么方法可以让我不那么长的时间?
random_words = random.choice(str1) + '' + random.choice(str2) + '' + random.choice(str3) + '' + random.choice(str4) + '' + random.choice(str5) + ''
如果我误解了你的问题,请告诉我。首先,把你的27张清单列成一张清单。理想情况下,您可以这样预先创建它们,但我假设您只是将27个列表作为27个不同的变量(yech),并且无法控制它。那很好;您可以制作自己的列表,以便于管理
import random
random_words = (
random.choice(str1) + '' +
random.choice(str2) + '' +
random.choice(str3) + '' +
# and so on...
)
请注意,您可以在多行中分解这些内容,因为它位于方括号内;Python允许您在下一行继续一个表达式,只要您有一组开放的方括号、圆括号或大括号
这样做了一次,您就再也不需要将所有这些变量放在一个表达式中,这意味着您不需要担心代码的超长行
原因如下:现在我们将所有内容都放在一个列表列表中,我们可以在一个非常短的迭代中构建随机词
,而无需再次复制和粘贴27个不同的变量名:
word_lists = [
str1, str2, str3, str4, str5, str6, str7, str8, str9,
str10, str11, str12, str13, str14, str15, str16, str17, str18,
str19, str20, str21, str22, str23, str24, str25, str26, str27,
]
每个Pyton编码员都应该知道。您的关键部分是:
- 以及关于换行的规则
[…]
包装长行的首选方法是在括号、方括号和大括号内使用Python的隐含行继续通过将表达式括在括号中,可以将长线拆分为多行。应该优先使用这些表达式,而不是使用反斜杠作为行的延续 以及它的延续,包括如何以及何时断行,以及如何在断行时继续使用
\
作为行的最后一个字符,如中所示
有时反斜杠可能仍然合适。例如,long、multiple with语句不能使用隐式延续,因此可以接受反斜杠:
random_words = ''.join(random.choice(words) for words in word_lists)
请务必阅读所有内容,即使是逐段阅读,因为其中包含了大量关于如何用python格式化代码的有价值的信息。请看,您可以选择艰难的方式,也可以选择明智的方式 函数用于动态执行Python程序 可以是字符串或对象代码 这是我要做的
with open('/path/to/some/file/you/want/to/read') as file_1, \
open('/path/to/some/file/being/written', 'w') as file_2:
file_2.write(file_1.read())
您可以拆分该行。在某些情况下,例如在参数列表的中间,您不需要执行任何其他操作。但在其他情况下,您需要在第一行末尾追加一个连续字符,即\(反斜杠)。不过非常感谢,这种方法更简单,当然也更聪明。看起来我将在很多这样编写的程序中使用exec()。
random_words = ''
for i in range(1,27):
exec(f'random_words += random.choice(str{i}) + \' \'')