如何使我的多个 if 语句起作用?或者最好如何在我的代码中使用嵌套循环
Posted
技术标签:
【中文标题】如何使我的多个 if 语句起作用?或者最好如何在我的代码中使用嵌套循环【英文标题】:How can I make my multiple if statements work? Or preferably how do I use nested loops in my code 【发布时间】:2019-03-13 12:08:51 【问题描述】:我想做的是转换我的变量:
table = "female\tIngelin\tAleksandersen\nmale\tJohnny\tDigre\nmale\tOsman\tBremseth\nfemale\tCathrine\tDagestad\nfemale\tTirill\tBakker"
变成这样的一种方案:
-
行:0 列:0 单元格值:女性
行:0 列:1 单元格值:Ingelin
行:0 列:2 单元格值:Aleksandersen
行:1 列:0 单元格值:男性
行:1 列:1 单元格值:强尼
列表很长,所以我会在 5 点停止,但你明白了。 到目前为止我的代码:
table="female\tIngelin\tAleksandersen\nmale\tJohnny\tDigre\nmale\tOsman\tBremseth\nfemale\tCathrine\tDagestad\nfemale\tTirill\tBakker"
def show_table():
print(table)
def show_every_cell():
col = -1
row = -1
names = table.split("\t")
for x in names:
row += 1
if row == 0:
col += 1
if col == 0:
print('Row: 0 Col: 0 ' + 'Cell value: ' + x)
if col == 1:
print('Row: 0 Col: 1 ' + 'Cell value: ' + x)
if col == 2:
print('Row: 0 Col: 2 ' + 'Cell value: ' + x)
if row == 1:
col += 1
if col == 0:
print('Row: 1 Col: 0 ' + 'Cell value: ' + x)
if col == 1:
print('Row: 1 Col: 1 ' + 'Cell value: ' + x)
if col == 2:
print('Row: 1 Col: 2 ' + 'Cell value: ' + x)
#The list continues with row: 2, 3 and 4. But no point in showing that part.
def main():
show_table()
show_every_cell()
if __name__ == "__main__":
main()
我的输出是这样的:
Row: 0 Col: 0 Cell value: female
Row: 1 Col: 1 Cell value: Ingelin
如你所见,它错过了很多......
【问题讨论】:
在打印新行之前,您永远不会重置col
。但这是不要重复自己的一个典型例子 - 与其编写几乎相同的代码 4 次,为什么不使用循环?
搜索任何关于for
循环的基础教程。
***.com/questions/1185545/…
【参考方案1】:
扩展我的评论:
在打印新行之前,您永远不会重置 col。但这是一个很好的例子,不要重复自己 - 与其编写几乎相同的代码 4 次,为什么不使用循环?
要重现您的输出,您可以以此为起点:
for rowno, row in enumerate(table.split("\n")):
for colno, cell in enumerate(row.split("\t")):
print("Row: , Col: , Cell value: ".format(rowno, colno, cell))
这是两个嵌套循环,在使用enumerate
自动计算相应位置的同时对输入进行迭代。
请注意,split
函数被使用了两次:一次在换行符 (\n
) 上拆分以获取每一行,然后在每个单元格的制表符 (\t
) 上拆分。
因为这看起来很像一个 csv 文件,所以也看看csv-module。
【讨论】:
谢谢,我试试看。 我添加了一些提示,也许它们可以帮助您进一步改进您的解决方案。 谢谢,非常感谢!【参考方案2】:您应该尝试嵌套的for
循环。
...
for x in names:
for row in range(number_of_rows):
for col in range(number_of_cols):
print('Row: ' + row + 'Col: ' + col + 'Cell value: ' + x)
【讨论】:
以上是关于如何使我的多个 if 语句起作用?或者最好如何在我的代码中使用嵌套循环的主要内容,如果未能解决你的问题,请参考以下文章
如果消息以前缀 + 使用 discord.js 的命令开头,如何使 if 语句起作用