Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.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_Python 3.x - Fatal编程技术网

Python中是否有某种方法可以让特定的代码行继续到下一行?

Python中是否有某种方法可以让特定的代码行继续到下一行?,python,python-3.x,Python,Python 3.x,基本上我有27个列表,分别命名为str1,str2,str3等等,所有的元素都是单词。使用random.choice()我从每个列表中选择一个随机单词,并将它们组合成一组随机单词。虽然我的问题是,一行特定的代码会有多长,因为我这样做了27个单词列表。所以我的问题是,在Python中是否有某种方式可以让特定的代码行继续到下一行?我知道这听起来像一个愚蠢的问题,哈哈,但这种情况经常发生在我身上,所以我只是想知道这是否是一件事。还有,如果不是(这可能不是lol),有没有什么方法可以让我不那么长的时间?

基本上我有27个列表,分别命名为str1,str2,str3等等,所有的元素都是单词。使用random.choice()我从每个列表中选择一个随机单词,并将它们组合成一组随机单词。虽然我的问题是,一行特定的代码会有多长,因为我这样做了27个单词列表。所以我的问题是,在Python中是否有某种方式可以让特定的代码行继续到下一行?我知道这听起来像一个愚蠢的问题,哈哈,但这种情况经常发生在我身上,所以我只是想知道这是否是一件事。还有,如果不是(这可能不是lol),有没有什么方法可以让我不那么长的时间?我想我可以组合5个列表,然后再组合5个列表,然后在最后将它们全部添加到一起。

如果将表达式括在括号中,则可以继续行。因此,上述内容将成为:

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编码员都应该知道。您的关键部分是:

  • 以及关于换行的规则
对于结构限制较少的长文本块(docstring或comments),行长度应限制为72个字符。
[…]
包装长行的首选方法是在括号、方括号和大括号内使用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}) + \' \'')