Python

Помогите написать код в python

После встречи с друзьями Петя решил написать игру, в которой пользователь вводит число N, а затем название дня недели, который будет через N дней. Если ответ неверный, программа должна выводить сообщение «Ответ неверный! Попробуй снова.» до тех пор, пока пользователь не введет верный день недели. В конце программа должна вывести сообщение: «Молодец! Количество попыток: K.» (K − количество попыток, сделанных пользователем).

Помогите Пете написать игру.

Формат ввода:

Вводится одно натуральное число N, не превышающее 1000000000.
Далее программе на вход подаются строки (названия дней недели: понедельник, вторник, среда, четверг, пятница, суббота или воскресенье), пока не введется нужная.

Формат вывода:

Программа должна выводить сообщение: «Ответ неверный! Попробуй снова.», если введённый день недели неверный.

После ввода верного дня недели программа должна вывести сообщение: «Молодец! Количество попыток: K.» (K − количество попыток, сделанных пользователем).


Для примера:

Ввод Результат
2
вторник
пятница
четверг
среда
Ответ неверный! Попробуй снова.
Ответ неверный! Попробуй снова.
Ответ неверный! Попробуй снова.
Молодец! Количество попыток: 4.
Ответ:(штрафной режим: 10, 20, ... %)
Здесь категория Python, а не С++. На Питоне так, вроде всё сходится
 from datetime import datetime 
now = datetime.now()
d = datetime.weekday(now)
w = [ 'понедельник', 'вторник', 'среда', 'четверг', 'пятница', 'суббота', 'воскресенье']
k = 1
try:
while True:
n = int(input('количество дней '))
res1 = input('какой будет день недели? ').lower()
res2 = w[(n - d) % 7]
if res1 == res2:
print(f'Молодец! Количество попыток: {k}')
break
else:
print('Ответ неверный! Попробуй снова')
k += 1
except ValueError:
print('неверный ввод')
Александр Куликов
Александр Куликов
51 991
Лучший ответ
Александр Куликов Там еще текущую неделю нужно учитывать, забыл добавить это условие
Яша(Филипп) Щекин Получил такой результат
Яша(Филипп) Щекин Нет, при получении неверного результата он начинает опрашивать с кол-ва дней, если n = int(input()) вытащить из While то все работает отлично. Спасибо за помощь!
# Initialise variables
n = 0
attempts = 0

# Get user input
n = int(input("Введите день недели: "))

# Calculate the day of the week
day = (n % 7)

# Main loop
while True:
answer = input("Название дня недели" + str(n) + " ? ")

# Check if the answer is correct
if answer == day:
print("Всё верно: " + str(attempts))
break
else:
print("Неверно.Повтори")
attempts += 1




Это примерный код
Elnur Zeynalov
Elnur Zeynalov
6 445
#include <iostream>
#include <string>

using namespace std;

int main() {
int N;
cout << "Введите число N: ";
cin >> N;

int attempts = 0;

while (true) {
string day;
cout << "Введите день недели, который будет через N дней: ";
cin >> day;

if (day == "понедельник" && N % 7 == 0 || day == "вторник" && N % 7 == 1 || day == "среда" && N % 7 == 2 || day == "четверг" && N % 7 == 3 || day == "пятница" && N % 7 == 4 || day == "суббота" && N % 7 == 5 || day == "воскресенье" && N % 7 == 6) {
cout << "Молодец! Количество попыток: " << attempts + 1 << endl; // +1, чтобы учитывалась посл. попытка.
break;

} else {

cout << "Ответ неверный! Попробуй снова." << endl;

attempts++;

}

}

return 0;
}
Не везде расставил пробелы и запятые,так что сорян
**niki** ***
**niki** ***
745
Андрей Семенюк ооо родной С++ вспомнила.
n=int(input())
k=1
day=1
day=(day+n)%7-1
rez=''
if day==0:
rez='понедельник'
elif day==1:
rez='вторник'
elif day==2:
rez='среда'
elif day==3:
rez='четверг'
elif day==4:
rez='пятница'
elif day==5:
rez='суббота'
elif day==6:
rez='воскресенье'
while True:
answer=input()
if answer==rez:
print(f'Молодец! Количество попыток: {k}.')
break
else:
k+=1
print('Ответ неверный! Попробуй снова.')
Denis Ктулху
Denis Ктулху
167