#python #algorithm #matrix #crossword
#python #алгоритм #матрица #кроссворд
Вопрос:
Я новичок в Python и застрял здесь. Я написал следующую программу, которая генерирует матрицу случайных чисел.
def randsq(size):
for i in range(size):
for j in range(size):
print(random.randint(0,9), end = '')
print()
Могу ли я в любом случае добавить функцию, которая принимает слово из входного параметра и скрывает его по диагонали внутри матрицы? Итак, если пользователь вводит «дождь», результат выглядит следующим образом:
r123
1a45
23i4
989n
Спасибо!
Комментарии:
1. Это действительно считается скрытым для вас?
2. @marc_s, будет ли «интегрированный» лучшим описанием? извините, я думаю, я просто использовал «скрытый», потому что не очень очевидно, что там есть слово.
3. @sascha Я предполагаю, что этот предыдущий комментарий из OP предназначался для вас
Ответ №1:
Модифицированный код:
import random
def randsq(word):
size = len(word)
for i in range(size):
for j in range(size):
if i == j: # we are at a diagonal-value
print(word[i], end='') # it's the i-th diag -> choose i-th char
else:
print(random.randint(0, 9), end='')
print()
randsq('Rain')
Вывод:
R757
0a91
02i9
757n
Если вы хотите, чтобы пользователь вводил это слово:
word_to_hide = input('Which word to hide? ( enter) ') # will wait for user-input enter
randsq(word_to_hide)
Комментарии:
1. Это потрясающе! Я был далек от этого:/ Если бы я хотел оставить слово на усмотрение пользователя, я бы просто использовал input() в конце?
2. Не обязательно в конце. Вы можете использовать ввод для получения некоторой строки, которая затем является аргументом randsq(word). С моим кодом размер матрицы будет автоматически адаптироваться.