基于行和列确定字母-python

基于行和列确定字母-python,python,string,letter,Python,String,Letter,所以我很沮丧,因为我对Java相当精通,所以我无法理解一些看似微不足道的事情,但无论如何,我的Python入门教授给我们分配了一个实验室,我们必须在那里创建一个基于行和列位置的字母模式。没有循环或迭代,只有条件语句 例如,此功能: def letter(row, col): if row>col: return 'T' else: return 'W' 将产生: WWWWWWWWWWWWWWWWWWWW TWWWWWWWWWWWWWWWWWWW TTW

所以我很沮丧,因为我对Java相当精通,所以我无法理解一些看似微不足道的事情,但无论如何,我的Python入门教授给我们分配了一个实验室,我们必须在那里创建一个基于行和列位置的字母模式。没有循环或迭代,只有条件语句

例如,此功能:

def letter(row, col):
   if row>col:
      return 'T'
   else:
      return 'W'
将产生:

WWWWWWWWWWWWWWWWWWWW
TWWWWWWWWWWWWWWWWWWW
TTWWWWWWWWWWWWWWWWWW
TTTWWWWWWWWWWWWWWWWW
TTTTWWWWWWWWWWWWWWWW
TTTTTWWWWWWWWWWWWWWW
TTTTTTWWWWWWWWWWWWWW
TTTTTTTWWWWWWWWWWWWW
TTTTTTTTWWWWWWWWWWWW
TTTTTTTTTWWWWWWWWWWW
TTTTTTTTTTWWWWWWWWWW
TTTTTTTTTTTWWWWWWWWW
TTTTTTTTTTTTWWWWWWWW
TTTTTTTTTTTTTWWWWWWW
TTTTTTTTTTTTTTWWWWWW
TTTTTTTTTTTTTTTWWWWW
TTTTTTTTTTTTTTTTWWWW
TTTTTTTTTTTTTTTTTWWW
TTTTTTTTTTTTTTTTTTWW
TTTTTTTTTTTTTTTTTTTW
如果运行他的驱动程序文件,行和列都等于20

我一直在为模式创建一个函数:

XOOOOOX
OXOOOXO
OOXOXOO
OOOXOOO
OOXOXOO
OXOOOXO
XOOOOOX
请不要用勺子给我答案,而是给我指出正确的方向

到目前为止,我知道当row==col时,可以识别左->右对角线的X。我遇到的问题是右->左对角线


非常感谢。

查看每个
X
位置的行和列之间的关系。然后,将这个问题分成两部分:一部分是从左上角到右下角的直线,另一部分是从左下角到右上角的直线

让我们看一下从左上到右下的
X
s:

row: column:
1    1
2    2
3    3
4    4
5    5
6    6
7    7
我认为您可以基于此确定行和列之间的关系

那么另一行呢,从左下到右上:

row: column:
1    7
2    6
3    5
4    4
5    3
6    2
7    1
你温柔的暗示是“+”

因此,如果元素的行和列具有第一个指定的关系
或第二个指定的关系
,则在其中放置一个
X


我希望这是一个适当的帮助。

为了做右上->左下对角线,你需要知道宽度(或高度,因为它是正方形)。在你的例子中,是7。这可能足以让您开始。@TigerhawkT3:它几乎相当于
print('\n'.join('.join(字母(row,col)表示范围内的列(colcount))表示范围内的行(rowcount))
(除了它可能会洗牌迭代以捕获意外或故意使用状态作弊的程序……)@abarnert我猜是你选择了它,所以你告诉驱动程序
rowcount
/
colcount
,然后你用这个假设编写代码。至少这是我从“if run through his driver file with row and col都等于20”中得到的信息。最后一件事:如果您真的对Java更熟悉,请编写一个
公共静态字符字母(int row,int col)
实现,然后尝试将其移植到Python。一般来说,这是一种编写代码的糟糕方式,但当您陷入困境时,这可能是一种摆脱困境的方式。(我经常用漂亮的Python编写Ruby或JS代码,将其移植为不好的Ruby/JS,然后一旦得到它,扔掉它并将其重写为惯用的Ruby/JS…@jedwards:“您不能使用全局变量。提示:请参阅
inspect.getsourcefile
ast.parse
”)很好的解释。但是我怀疑
是基于0的,而不是基于1的。(虽然OP可能会通过计算出如果他每种方式都猜错了,他的代码会做错什么来学到一些东西,然后运行它来验证…)嘿,非常感谢!这是一个很好的回答,我很欣赏这个温柔的暗示,哈哈!我认为在这种情况下,解释与索引无关-它可能是
n
n+1
,等等。此外,我使用此算法测试了一个函数,通过您在该注释中给出的驱动程序运行它,它的行为与预期一致。:)@TigerhawkT3:好吧,你必须为基于0和基于1编写的代码在这里会有所不同。但我想你是对的;对于任何已经了解基于0和基于1的区别的人,您的解释将告诉他们以任何一种方式编写它所需要知道的一切。这就是想法。:)