Вопрос Нужна помощь новичку в Python

Начинающий
Статус
Оффлайн
Регистрация
21 Июл 2020
Сообщения
16
Реакции[?]
1
Поинты[?]
0
Всем привет. Недавно я решил изучать программирование. Первым ЯП я выбрал Python. Изучаю его 2 дня, смотря лекции на ютубе. Так как у меня нет наставника , который сможет мне указывать на ошибки, я предпринял решение обратиться на данный форум в надежде, что тут мне кто-то поможет. Буду очень признателен всем, кто в какой-то мере будет помогать.

Первой "программой" у меня естественно была фраза "Hello, World!" :
Python:
print('Hello, World!')
Далее после второй лекции было домашнее задание, которое состояло из двух уровней:
Первый уровень:

-Напишите программу, которая считает площадь прямоугольника, спрашивая у пользователя длину двух сторон.

Моё решение:
Python:
print('Вычисление площади прямоугольника')
a = input('Введи первую сторону: ')
b = input('Введи вторую сторону: ')
print('Площадь прямоугольника равна ',int(a) * int(b))
-Напишите программу, которая спрашивает у пользователя два числа и знак: "+" или "-". В зависимости от знака выводит их сумму или разницу

Моё решение:
Python:
print('Добро пожаловать в рандомное приложение')
a = input('Назови любое число: ')
b = input('Назови ещё одно число: ')
c = input('Выбери действие (+\-): ')
if '-' in c:
    print(int(a) - int(b))
else:
    print(int(a) + int(b))
-Напишите программу, которая находит все простые числа между 0 и пользовательским числом

Моё решение:
Python:
print('Нахождение всех чисел, кратных 5 в диапазоне двух чисел ')
a = input('Введи первое число: ')
b = input('Введи второе число: ')
for i in range(int(a),int(b)):
    if i % 5 == 0:
        print(i)
-Напишите программу, которая находит все простые числа между 0 и пользовательским числом

Решить не смог

Второй уровень:

Задача: реализовать игру в загадки

Требования:
-Программа должна выводить в консоль текст загадки и ждать ввода пользователя
-Программа после ввода пользователя ответа должна вывести в консоль результат: правильный ли ответ дал пользователь
-Загадок должно быть 10
-Дополнительные требования (со звездочкой или сложные, необязательно для выполнения):
-Программа должна в конце игры сказать, сколько ответов дал пользователь: сколько из них было верных
-Программа должна не учитывать регистр ответа: "Python" и "python" оба должны быть правильным ответом на вопрос "Какой язык мы учим?"


Моё решение:(АХТУНГ! МНОГО БУКВ!)
Python:
print('Играем в загадки')
first_answer = input('Загадка 1 \nЧто больше: сумма всех цифр или их произведение? ')
if 'сумма' in first_answer or 'Сумма' in first_answer:
    print('Правильно')
    a = 1
else:
    print('Неправильно')
print('Идём дальше')
second_answer = input('Загадка 2 \nНа ветке сидели три птички, две решили полететь. Сколько осталось сидеть на ветке птичек?')
if 'три' in second_answer or '3' in second_answer or 'Три' in second_answer:
    print('Правильно')
    a = a + 1
else:
    print('Неправильно')
print('Идём дальше')
third_answer = input('Загадка 3 \nУ Олиной мамы пять дочек: Вика, Аня, Марта, Кира... \nКак зовут пятую?')
if 'оля' in third_answer or 'Оля' in third_answer:
    print('Правильно')
    a = a + 1
else:
    print('Неправильно')
print('Идём дальше')
fourth_answer = input('Загадка 4 \nДва друга играли в шахматы 2 часа. \nСколько часов играл каждый из них?')
if '2' in fourth_answer or 'два' in fourth_answer or 'Два' in fourth_answer:
    print('Правильно')
    a = a + 1
else:
    print('Неправильно')
print('Идём дальше')
fifth_answer = input('Загадка 5 \nВ доме 4 этажа. Чем выше этаж, тем больше людей там живёт. \nНа какой этаж чаще ездит лифт?')
if '1' in fifth_answer or 'Первый' in fifth_answer or 'первый' in fifth_answer:
    print('Правильно')
    a = a + 1
else:
    print('Неправильно')
print('Идём дальше')
sixth_answer = input('Загадка 6 = \nВчера был четверг. \nКакой день будет послезавтра?')
if 'Воскресенье' in sixth_answer or 'воскресенье' in sixth_answer:
    print('Правильно')
    a = a + 1
else:
    print('Неправильно')
print('Идём дальше')
seventh_answer = input('Загадка 7 \nБыло 6 блоков. Несколько из них разрезали пополам. Стало 10 блоков. \nСколько блоков разрезали?')
if '4' in seventh_answer or 'четыре' in seventh_answer or 'Четыре' in seventh_answer:
    print('Правильно')
    a = a + 1
else:
    print('Неправильно')
print('Идём дальше')
eighth_answer = input('Загадка 8 \nУ семерых братьев по сестре. \nСколько всего сестер?')
if '1' in eighth_answer or 'одна' in eighth_answer or 'Одна' in eighth_answer
    print('Правильно')
    a = a + 1
else:
    print('Неправильно')
print('Идём дальше')
ninth_answer = input('Загадка 9 \nНа руках десять пальцев. \nСколько пальцев на десяти руках?')
if '50' in ninth_answer or 'пятьдесят' in ninth_answer or 'Пятьдесят' in ninth_answer:
    print('Правильно')
    a = a + 1
else:
    print('Неправильно')
print('Идём дальше')
tenth_answer = input('Загадка 10 \nКакой язык программирования мы изучаем?')
if 'python' in tenth_answer or 'Python' in tenth_answer:
    print('Правильно')
    a = a + 1
else:
    print('Неправильно')
print('Поздравляю! Ты молодец! Правильных ответов - ',a)
На работоспособность проверить не смог.

Если ты дочитал это до конца, то спасибо тебе. Мне понадобится твоя помощь с задачей про простые числа и с последней задачей. Спасибо ещё раз:blush:
 
Эксперт
Статус
Оффлайн
Регистрация
9 Апр 2020
Сообщения
1,446
Реакции[?]
674
Поинты[?]
33K
Это полный бред?
Я особо не вчитывался, но похоже что код ты у кого-то украл, и я почти уверен, что там можно было меньше кода сделать (опять же, я особо не вчитывался).
 
Начинающий
Статус
Оффлайн
Регистрация
21 Июл 2020
Сообщения
16
Реакции[?]
1
Поинты[?]
0
Я особо не вчитывался, но похоже что код ты у кого-то украл, и я почти уверен, что там можно было меньше кода сделать (опять же, я особо не вчитывался).
Ну, код абсолютно мой. Смысл мне брать чей-то код и выставлять его как свой. Я учусь и хочу выявить свои ошибки. В большом коде с загадками можно было бы сделать меньше кода, но я не мог разобраться. Поэтому сделал самыми простыми способами
 
Барыга на минималках
Пользователь
Статус
Оффлайн
Регистрация
10 Фев 2019
Сообщения
182
Реакции[?]
57
Поинты[?]
2K
Я хоть и не супер кодер, но мне было скучно и реализовал последнюю задачу я так
Python:
spisok = [
            {'ask': 'Загадка 1 \nЧто больше: сумма всех цифр или их произведение?', 'answer': 'сумма'},
              {'ask': 'Какой язык мы учим?', 'answer': 'python'},
         ]
score = 0
for i in spisok:
    if i['answer'] in input(i['ask']+' ').lower():
            print('Правильно!')
            score += 1
    else:
        print('Неправильно! Правильный ответ:', i['answer'])
print(f'Поздравляю! Ты молодец! Правильных ответов - {score} из {len(spisok)}')
input()
 
Эксперт
Статус
Оффлайн
Регистрация
9 Апр 2020
Сообщения
1,446
Реакции[?]
674
Поинты[?]
33K
Я хоть и не супер кодер, но мне было скучно и реализовал последнюю задачу я так
Python:
spisok = [
            {'ask': 'Загадка 1 \nЧто больше: сумма всех цифр или их произведение?', 'answer': 'сумма'},
              {'ask': 'Какой язык мы учим?', 'answer': 'python'},
         ]
score = 0
for i in spisok:
    if i['answer'] in input(i['ask']+' ').lower():
            print('Правильно!')
            score += 1
    else:
        print('Неправильно! Правильный ответ:', i['answer'])
print(f'Поздравляю! Ты молодец! Правильных ответов - {score} из {len(spisok)}')
input()
Ты взломал питон, я пишу на тебя жалобу, увидимся в суде :roflanEbalo:
 
money++
Разработчик
Статус
Оффлайн
Регистрация
14 Июн 2018
Сообщения
638
Реакции[?]
339
Поинты[?]
22K
-Напишите программу, которая находит все простые числа между 0 и пользовательским числом

Моё решение:
Python:
print('Нахождение всех чисел, кратных 5 в диапазоне двух чисел ')
a = input('Введи первое число: ')
b = input('Введи второе число: ')
for i in range(int(a),int(b)):
if i % 5 == 0:
print(i)
Потому что простые числа, это те натуральные числа, которые делятся только на себя и на 1. Поэтому число должно НЕ делится на все числа от 2 до корня из этого числа
 
Начинающий
Статус
Оффлайн
Регистрация
21 Июл 2020
Сообщения
16
Реакции[?]
1
Поинты[?]
0
Потому что простые числа, это те натуральные числа, которые делятся только на себя и на 1. Поэтому число должно НЕ делится на все числа от 2 до корня из этого числа
Код к задаче вывод всех чисел, кратных пяти в промежутке, который задан пользователем
 
Начинающий
Статус
Оффлайн
Регистрация
24 Май 2020
Сообщения
197
Реакции[?]
25
Поинты[?]
0
Можно было решить и намного короче.
Python:
riddles = ["Загадка 1","Загадка 2","Загадка 3","Загадка 4","Загадка 5","Загадка 6", "Загадка 7"]
answers = ["Ответ 1", "Ответ 2","Ответ 3","Ответ 4","Ответ 5","Ответ 6","Ответ 7"]


def Main():
    for i in range(len(riddles)):
        print(riddles[i] + "\n")
        answ = input("Ответ: ")
        if answ == answers[i]:
            print("Правильно!")
        else:
            print("Неправильно!")


if __name__ == "__main__":
    Main();
 
working ?
Забаненный
Статус
Оффлайн
Регистрация
9 Ноя 2019
Сообщения
384
Реакции[?]
208
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Можно было решить и намного короче.
Python:
riddles = ["Загадка 1","Загадка 2","Загадка 3","Загадка 4","Загадка 5","Загадка 6", "Загадка 7"]
answers = ["Ответ 1", "Ответ 2","Ответ 3","Ответ 4","Ответ 5","Ответ 6","Ответ 7"]


def Main():
    for i in range(len(riddles)):
        print(riddles[i] + "\n")
        answ = input("Ответ: ")
        if answ == answers[i]:
            print("Правильно!")
        else:
            print("Неправильно!")


if __name__ == "__main__":
    Main();
Я конечно приебусь, но почему ты не юзаешь картежи? Ты же не меняешь значения в масиве, а картеж нельзя редактировать и он весит меньше:roflanBuldiga:
 
Барыга на минималках
Пользователь
Статус
Оффлайн
Регистрация
10 Фев 2019
Сообщения
182
Реакции[?]
57
Поинты[?]
2K
Можно было решить и намного короче.
Python:
riddles = ["Загадка 1","Загадка 2","Загадка 3","Загадка 4","Загадка 5","Загадка 6", "Загадка 7"]
answers = ["Ответ 1", "Ответ 2","Ответ 3","Ответ 4","Ответ 5","Ответ 6","Ответ 7"]


def Main():
    for i in range(len(riddles)):
        print(riddles[i] + "\n")
        answ = input("Ответ: ")
        if answ == answers[i]:
            print("Правильно!")
        else:
            print("Неправильно!")


if __name__ == "__main__":
    Main();
может я и не прав, но по PEP 8 функции должны содержать только строчные буквы
 
Барыга на минималках
Пользователь
Статус
Оффлайн
Регистрация
10 Фев 2019
Сообщения
182
Реакции[?]
57
Поинты[?]
2K
Я конечно приебусь, но почему ты не юзаешь картежи? Ты же не меняешь значения в масиве, а картеж нельзя редактировать и он весит меньше:roflanBuldiga:
а вдруг он захочет перемешать порядок вопросов
 
Начинающий
Статус
Оффлайн
Регистрация
24 Май 2020
Сообщения
197
Реакции[?]
25
Поинты[?]
0
Я конечно приебусь, но почему ты не юзаешь картежи? Ты же не меняешь значения в масиве, а картеж нельзя редактировать и он весит меньше:roflanBuldiga:
Не подумал про картеж.
 
Начинающий
Статус
Оффлайн
Регистрация
24 Май 2020
Сообщения
197
Реакции[?]
25
Поинты[?]
0
Начинающий
Статус
Оффлайн
Регистрация
21 Июл 2020
Сообщения
16
Реакции[?]
1
Поинты[?]
0
Всем спасибо за ответы. Чёт читаю, и ничего не понимаю. Что за картежи? Я использовал лишь начальный набор синтаксиса. Может кто-то объяснить, что за что отвечает в вашем коде?
 
Начинающий
Статус
Оффлайн
Регистрация
21 Июл 2020
Сообщения
16
Реакции[?]
1
Поинты[?]
0
Можно было решить и намного короче.
Python:
riddles = ["Загадка 1","Загадка 2","Загадка 3","Загадка 4","Загадка 5","Загадка 6", "Загадка 7"]
answers = ["Ответ 1", "Ответ 2","Ответ 3","Ответ 4","Ответ 5","Ответ 6","Ответ 7"]


def Main():
    for i in range(len(riddles)):
        print(riddles[i] + "\n")
        answ = input("Ответ: ")
        if answ == answers[i]:
            print("Правильно!")
        else:
            print("Неправильно!")


if __name__ == "__main__":
    Main();
Есть вопросы. Что такое
Python:
def Main()
И что такое и зачем
Python:
if __name__ == "__main__":

    Main()
 
Сверху Снизу