Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.75/208: Рейтинг темы: голосов - 208, средняя оценка - 4.75
 Аватар для Lucky64
20 / 9 / 0
Регистрация: 16.01.2019
Сообщений: 288

Ищу доброго самаритянина по питону

16.01.2019, 16:27. Показов 47592. Ответов 508
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всех приветствую, немного о себе, 27 лет, женат, работаю системным админом в крупной компании. Всегда хотел программировать, но по стечению обстоятельств не сложилось, то работа не позволяла, не было времени, то бытовуха итд. Но вот решил что во что бы то не стало я овладею данной профессией. Начал свой путь программирования с питона. Сейчас читаю книги, прохожу на сайтах различные обучающие уроки итд, на ютюбе нашел не плохой канал где разжевывают все хорошо и вроде потихоньку получается писать (можно было бы идти на курсы, но не позволяет работа, питон питоном, а семью кормить надо, вроде и на работе время есть изучать, но вот уходить на курсы с работы итд, это не варик). Буквально вчера закончил разбираться и написал уже самостоятельно игру камень, ножницы, бумага, где играешь против компа. Ищу человека который просто направлял бы меня в нужное русло, подкидывал материал для изучения, который потом мне пригодится итп, который помог бы в трудностях. Просто учить все подряд без какого либо плана дает итог каши в голове. Если найдется тут такой человек, буду искренне благодарен ему!
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
16.01.2019, 16:27
Ответы с готовыми решениями:

В зависимости от ведённого времени получите сообщение с пожеланием доброго утра, доброго дня, доброго вечера, спокойный
Плииз! Помогите с учёбой! В общем суть задания: В зависимости от ведённого времени (от 0 до 24) получите сообщение с пожеланием доброго...

В зависимости от введенного значения времени желает доброго утра, доброго дня, доброго вечера, доброй ночи.
Нужно составить программу, которая требует ввода времени дня и в зависимости от введенного значения желает доброго утра, доброго дня,...

Ищу доброго человечка, который поможет
Здравствуйте. Помогите пожалуйста сверстать небольшую страницу. Html, Css, Font Awesome

508
Эксперт Python
5439 / 3860 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
19.02.2019, 01:22
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Viktorrus Посмотреть сообщение
Просто Лутц называет у себя в книге
Дело в том (я потому и решил написать предыдущий пост), что Лутц вообще не употребляет такое название как "генератор списков".
Это прихоть (следование моде\сложившемуся словоупотреблению\etc... или как указано в вики "не очень удачный перевод, так как в функциональном программировании есть отдельное понятие для генератора списка, англ. list generator") переводчика. В оригинале же так:
In addition to sequence operations and list methods, Python includes a more advanced
operation known as a list comprehension expression...
И так как в каждой строчке про эту конструкцию.
0
1732 / 970 / 199
Регистрация: 22.02.2018
Сообщений: 2,693
Записей в блоге: 6
19.02.2019, 02:13
Garry Galler, Я все понял, большое спасибо. Вот только теперь придется ломать голову как самому воспринимать такой перевод Лутца, а самое главное как объяснять другим. Видимо придется просто обращать внимание других, что слова в русском переводе Лутца, "генератор списка" нужно воспринимать как "заключенная в квадратные скобки инструкция for возвращающая список".
Ведь нельзя отрицать, что в инструкции присваивания
l = [i for i in range(10)]
запись справа возвращает список, а конструкция for внутри квадратных скобок имеет в стандартной документации свое название, но я сходу его не нашел.
Во или так, "конструкция возвращающая список".
Потому что list comprehension (понимание списка) сложно для понимания.
Сам я это понимаю, а другим нужно будет пояснять.

Добавлено через 5 минут
Я вот не знаю, вот такая запись в круглых скобках (i for i in range(10)) в питоне является выражением.
А запись в квадратных скобках [i for i in range(10)] вроде уже не выражение.
Ладно решено, буду называть конструкцией возвращающей список.

Добавлено через 2 минуты
А тогда запись (i for i in range(10)) называть выражением возвращающем генератор.

Добавлено через 9 минут
Хотя Вы говорите , что в оригинале написано
Цитата Сообщение от Garry Galler Посмотреть сообщение
list comprehension expression
, то есть эта запись все таки называется выражением. Ну тогда будем называть выражением возвращающим список.

Добавлено через 17 минут
Хотя, я проверил
Python
1
2
3
>>> L = [2 +3 + 10]
>>> L
[15]
Из этого следует, что [2 +3 + 10] не выражение, а список, который формируется выражением внутри его.
Отсюда [i for i in range(10)] тоже список, с циклом for внутри его, который формирует содержимое этого списка.
Значит будем называть "список формируемый циклом for" .

Ладно, на этом остановимся, на сегодня изысканий хватит.
0
 Аватар для IRIP
514 / 146 / 28
Регистрация: 18.04.2015
Сообщений: 1,904
Записей в блоге: 16
19.02.2019, 02:43
Кстати, 18 февраля начался новый курс python3 для новичков (бесплатный)

https://courses.openedu.ru/cou... _2019/info

Приветствую Вас на курсе!
В этом курсе Вы освоите основы языка программирования Python, его применения для работы с базами данных и Интернет, а также научитесь создавать Web-приложения с использованием Django. Для освоения курса у Вас будут видео лекции, традиционные презентации и интерактивные опросы, а также испытания по всем разделам, предназначенные для формирования навыков решения задач.
Штенников Дмитрий Геннадьевич

Добавлено через 3 минуты
Как бы вы ответили?

Какие версии Python являются несовместимыми по операциям ввода и вывода?
Python 2.7 и 3.5
Pyhton 2.7 и 2.1
Python 2.6 и 3.5
Python 3.3 и 3.5
неверно


Какими из приведенных ниже способов возможен запуск команд Python?
С помощью командной строки
С помощью интерактивного графического интерфейса GUI
С помощью интерактивной командной строки
неверно


Какие из выражений не являются частью Дзена Pyhon?
Явное лучше, чем неявное.
Простое лучше, чем сложное.
Сложное лучше, чем запутанное.
Читаемость не имеет значение.
неверно

Отправить
0
0 / 0 / 0
Регистрация: 08.11.2015
Сообщений: 15
19.02.2019, 05:26
IRIP, Спасибо. Я ещё не закончила полностью курсы на Степике и по той причине, что там дают большой объем информации, очень кратко (наверное потому что я пока взяла только бесплатные курсы) в конце блока изучения задачи, без которых не пойти дальше, но кроме новичков, там ещё есть немного продвинутые (простите за наглость к которым я сейчас себя причисляю) и когда смотришь решения задачи другими, с использованием ещё неизученного материала, это непонятно, интересно и завораживает, лезешь в гугл и ищешь, а что же это такое, и это немного сбивает с пути (может это конечно особенность моего характера-нетерпеливость) хочется понять всё и сразу. И практики малова-то, почему и пошла на форум, отрабатывать навыки на 1-2 задачах не получиться, а теория теорией, когда ты на практике сталкиваешься с функцией, циклом, методом и видишь как это работает и понимаешь это, тогда и запоминаешь хорошо и их названия и область применения. Я считаю, что я много уже из вводного (азов) прошла, но что толку, без практики это ооочень быстро забывается, и потом в сложном коде на простую функцию смотришь как баран(простите).
0
 Аватар для Lucky64
20 / 9 / 0
Регистрация: 16.01.2019
Сообщений: 288
19.02.2019, 10:22  [ТС]
Viktorrus, В общем в первой же задаче косяк из книги, либо я ее не правильно понял по началу. задача:
1. Основы импортирования. Напишите программу, которая подсчитывает количество строк и символов в файле (в духе утилиты wc в операционной системы UNIX). В своем текстовом редакторе создайте модуль с именем mymod.
py, который экспортирует три имени:
• Функцию countLines(name), которая читает входной файл и подсчитывает
число строк в нем (подсказка: большую часть работы можно выполнить
с помощью метода file.readlines, а оставшуюся часть – с помощью функции len).
• Функцию countChars(name), которая читает входной файл и подсчитывает число символов в нем (подсказка: метод file.read возвращает единую
строку).
• Функцию test(name), которая вызывает две предыдущие функции с заданным именем файла. Вообще говоря, имя файла можно жестко
определить в программном коде, принимать ввод от пользователя или
принимать имя как параметр командной строки через список sys.argv –
но пока исходите из предположения, что оно передается как аргумент
функции.
Все три функции в модуле mymod должны принимать имя файла в виде строки. Если размер любой из функций превысит две-три строки, это значит, что
вы делаете лишнюю работу, – используйте подсказки, которые я вам дал!
Решение:
Python
1
2
3
4
5
6
7
def countLines(L):
    f=open(L)
    return len(f.readlines())
def countChars(L):
    return len(open(L).read())
def test(L):
    return countLines(L), countChars(L)
Проблема в том, что если я открываю функцию в консоле так как описано в книге, а именно:
>>> import mymod
>>> mymod.test(‘mymod.py’)
то мне выдает ошибку, оказалось надо прописать
>>> import mymod
>>> mymod.test(‘название и расширение файла, который необходимо прочитать’)

Добавлено через 18 минут
Viktorrus, 2часть:
from/from *. Проверьте модуль mymod из упражнения 1 в интерактивной оболочке, используя для загрузки экспортируемых имен инструкцию from –
сначала по имени, а потом с помощью формы from *.

Проверил, все работает.

Добавлено через 5 минут
Viktorrus, 3 задача:
3. __main__. Добавьте в модуль mymod строку, в которой автоматически производился бы вызов функции test, только когда модуль выполняется как
самостоятельный сценарий, а не во время импортирования. Добавляемая
вами строка, вероятно, должна содержать проверку значения атрибута
__name__ на равенство строке “__main__”, как было показано в этой главе.
Попробуйте запустить модуль из системной командной строки, затем импортируйте модуль и проверьте работу функций в интерактивном режиме.
Будут ли работать функции в обоих режимах?
Решение:
Python
1
2
3
4
5
6
7
8
9
10
def countLines(L):
    f=open(L)
    return len(f.readlines())
def countChars(L):
    return len(open(L).read())
def test(L):
    return countLines(L), countChars(L)
if __name__=='__main__':
    import mymod
    print(mymod.test('lines10.txt'))
Добавлено через 3 часа 18 минут
Viktorrus, 4
Вложенное  импортирование. Напишите второй модуль myclient.py, который импортирует модуль mymod и проверяет работу его функций, затем запустите myclient из системной командной строки.
Решение:
Python
1
2
3
import mymod
print(mymod.test('lines10.txt') )
input()
так?
0
 Аватар для IRIP
514 / 146 / 28
Регистрация: 18.04.2015
Сообщений: 1,904
Записей в блоге: 16
19.02.2019, 12:03
nadushka1507, какой сейчас проходите?
0
Эксперт Python
1356 / 653 / 207
Регистрация: 23.03.2014
Сообщений: 3,057
19.02.2019, 13:12
Lucky64, я наблюдаю за вашим прогрессом и им приятно удивлен.
0
 Аватар для Lucky64
20 / 9 / 0
Регистрация: 16.01.2019
Сообщений: 288
19.02.2019, 13:15  [ТС]
Цитата Сообщение от Dax Посмотреть сообщение
я наблюдаю за вашим прогрессом и им приятно удивлен.
Действительно приятно читать такие коменты, спс!
0
1732 / 970 / 199
Регистрация: 22.02.2018
Сообщений: 2,693
Записей в блоге: 6
19.02.2019, 14:03
Lucky64, Ты молодец. Я же, когда раньше делал это же задание, не стремился к компактности, что бы уложиться в 2 строки. и писал развернуто. Вот что у меня тогда получилось:

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
def createLines():
    f = open('lines10.txt', 'w')
    for i in range(10):
        f.write('Line'+str(i)+'\n')
    f.close()
 
def countLines(name):
    f = open(name, 'r')
    L = f.readlines()
    print(len(L))
    f.close()
 
def countChars(name):
    f = open(name, 'r')
    Ch = f.read()
    print(len(Ch))
    f.close()
 
def test(name):
    countLines(name)
    countChars(name)
 
if __name__ == '__main__':
    createLines()
 
    test('lines10.txt')


Добавлено через 2 минуты
Последние несколько дней какая то проблема на форуме, он иногда дублирует комментарий.

Добавлено через 1 минуту
Приходится заходить и удалять повторение.

Добавлено через 15 минут
Вот только замечание, у тебя не закрывается файл после того как функция отработает. Нужно или использовать другую форму открытия файла, с помощью with , что бы файл закрывался автоматически, или принудительно его закрывать с помощью метода file.close()

Начал писать тебе замечание, и только сейчас обратил внимание, что в моем коде, который я когда то писал, есть ошибка. close() должен быть со скобками, как и любой метод вызываемый обычным способом.
Сейчас исправлю.
0
 Аватар для Lucky64
20 / 9 / 0
Регистрация: 16.01.2019
Сообщений: 288
19.02.2019, 14:10  [ТС]
Цитата Сообщение от Viktorrus Посмотреть сообщение
ы молодец. Я же, когда раньше делал это же задание, не стремился к компактности, что бы уложиться в 2 строки. и писал развернуто. Вот что у меня тогда получилось:
дак он дал подсказку в задании, я вбил в справочник инструменты из его подсказок, разобрался что и как работает, и подставил все в нужные места. Единственное пропарился в конце с выводом, но потом заметил ошибку в книге(по крайней мере мне кажется что это ошибка, я писал о ней), когда исправил ее, все запустилось. А остальные 3 задания были проще простого.
Цитата Сообщение от Viktorrus Посмотреть сообщение
Приходится заходить и удалять повторение.
такая же проблема, у меня он еще и подвисает ппц
0
1732 / 970 / 199
Регистрация: 22.02.2018
Сообщений: 2,693
Записей в блоге: 6
19.02.2019, 14:15
Конечно, когда программа заканчивает работу, то все открытые файлы закрываются. Но лучше на это не надеяться, и закрывать файл сразу после того, как работа с файлом закончена, что бы не было накладок во время работы программы, и каждый такой кусок работы с фалом был не зависим.
0
 Аватар для Lucky64
20 / 9 / 0
Регистрация: 16.01.2019
Сообщений: 288
19.02.2019, 14:18  [ТС]
Viktorrus, Виктор, раз я закончил эту часть, давайте перейдем к практике? Предлагаю сделать так, вы сами находите подходящие задачи на форме, и даете их мне тут. Просто дело в том, что я вот парился около 2 часов над задачей Округление
Но мне кажется что она просто не выполнима, или я не смог понять логику ее выполнения... все свои варианты я расписал в той теме в ответах. Буду рад если вы взглянете... Вот что бы я сам себя не загонял в безвыходное положение, мб вы подберете задания по моим знаниям?
0
1732 / 970 / 199
Регистрация: 22.02.2018
Сообщений: 2,693
Записей в блоге: 6
19.02.2019, 14:23
Цитата Сообщение от Lucky64 Посмотреть сообщение
у меня он еще и подвисает
У меня тоже по долгу приходится ждать, пока выложит комментарий.
0
Эксперт Python
1356 / 653 / 207
Регистрация: 23.03.2014
Сообщений: 3,057
19.02.2019, 14:24
Viktorrus, Lucky64, По поводу файла можно же не ставить fp.close:
Python
1
2
with open(my_filename + '.' + 'txt', 'w', encoding='utf-8') as fp:# эта конструкция позволяет закрывать поток иначе
     print(data, file=fp, sep="\n")
0
1732 / 970 / 199
Регистрация: 22.02.2018
Сообщений: 2,693
Записей в блоге: 6
19.02.2019, 14:38
Цитата Сообщение от Dax Посмотреть сообщение
По поврлу файла можно же не ставить fp.close:
Я про это выше написал, что для открытия файла можно использовать форму with .
Но это кому как нравиться. Я предпочитаю развернутые формы, что бы было по максимуму все понятно. Хотя признаюсь, развернутые формы иногда пугают своей громоздкостью. Для меня остается вопрос, какая форма, развернутая или компактная понятнее. Хотя можно предположить что развернутая понятнее начинающему, а компактная более наглядная для опытного программиста.

Добавлено через 6 минут
Цитата Сообщение от Lucky64 Посмотреть сообщение
Предлагаю сделать так, вы сами находите подходящие задачи на форме, и даете их мне тут
Договорились. Только не будем копировать сюда задачу, что бы не было нареканий от модератора. Здесь даем ссылку на тему. Затем не копируя саму задачу, здесь строим алгоритмы ее решения. Затем ты выкладываешь здесь варианты решения, и окончательный вариант ты копируешь в тему, если только там уже не предложен более лучший вариант.

Добавлено через 16 секунд
Цитата Сообщение от Lucky64 Посмотреть сообщение
Предлагаю сделать так, вы сами находите подходящие задачи на форме, и даете их мне тут
Договорились. Только не будем копировать сюда задачу, что бы не было нареканий от модератора. Здесь даем ссылку на тему. Затем не копируя саму задачу, здесь строим алгоритмы ее решения. Затем ты выкладываешь здесь варианты решения, и окончательный вариант ты копируешь в тему, если только там уже не предложен более лучший вариант.
0
0 / 0 / 0
Регистрация: 08.11.2015
Сообщений: 15
19.02.2019, 14:39
IRIP, программирование на Python
0
1732 / 970 / 199
Регистрация: 22.02.2018
Сообщений: 2,693
Записей в блоге: 6
19.02.2019, 15:37
А пока послушай лекцию 1
https://www.youtube.com/watch?... bm4GeOjjc0

и позже ее обсудим.

Добавлено через 1 минуту
А пока послушай лекцию 1
https://www.youtube.com/watch?... bm4GeOjjc0

и позже ее обсудим.

Добавлено через 39 минут
Цитата Сообщение от Lucky64 Посмотреть сообщение
над задачей Округление
Там Резистанс дал правильный ответ, сначала более громоздкий, потом более компактный

Python
1
2
3
4
5
6
def my_round(value):
    fract = value - int(value)
    if fract > 0.5:
        return int(value + fract)
    else:
        return int(value) + 0.5
Если что то в нем не понятно, давай обсудим.

Добавлено через 15 секунд
Цитата Сообщение от Lucky64 Посмотреть сообщение
над задачей Округление
Там Резистанс дал правильный ответ, сначала более громоздкий, потом более компактный

Python
1
2
3
4
5
6
def my_round(value):
    fract = value - int(value)
    if fract > 0.5:
        return int(value + fract)
    else:
        return int(value) + 0.5
Если что то в нем не понятно, давай обсудим.

Добавлено через 2 минуты
Наверное нужно сделать паузу, пока исправят форум, а пока смотри лекции, ссылку на которые я дал, потом их обсудим.

Добавлено через 14 секунд
Наверное нужно сделать паузу, пока исправят форум, а пока смотри лекции, ссылку на которые я дал, потом их обсудим.

Добавлено через 8 минут
Как я понял, тебе нужно тренироваться разрабатывать алгоритмы. Потому, что в этой задаче главное было разработать алгоритм, так как сам код простой.
0
 Аватар для Lucky64
20 / 9 / 0
Регистрация: 16.01.2019
Сообщений: 288
19.02.2019, 15:55  [ТС]
Viktorrus, БЭЭЭЭлин, сначала не понял, потом решил расписать, потом до меня дошло что инт это ведь целое число, и потом ко мне пришла суть решения...
Python
1
2
3
4
5
6
7
def my_round(value): #Допустим число 5.51
    fract = value - int(value) #Фракт равно 5.51 - 5 (инт -целое число ведь), значит получаем фркпт = 0.51 правельно??
    if fract > 0.5:#Если фракт больше 0.5, а оно больше.
        return int(value + fract)#Значит складываем 0.51 +5.51=6.02 и переводим все это в целое число 6
    else:
        return int(value) + 0.5
print(my_round(5.51) )
ПРоблема была в том, что я опирался только на математическую логику и совсем забыл про магию, которую творят инструменты питона, алгоритм был у меня правильный, не хватило знания именно в том, как можно еще использовать инт((( Все так просто, когда видишь готовый результат...
0
151 / 86 / 35
Регистрация: 05.08.2017
Сообщений: 257
19.02.2019, 16:25
Lucky64, кстати вот еще более лучшее решение, без преобразования к int.
Python
1
2
3
4
5
6
def my_round(value):
    fract = value - value // 1
    if fract > 0.5:
        return (value + fract) // 1
    else:
        return value // 1 + 0.5
0
 Аватар для Lucky64
20 / 9 / 0
Регистрация: 16.01.2019
Сообщений: 288
19.02.2019, 18:52  [ТС]
Viktorrus,
Цитата Сообщение от Viktorrus Посмотреть сообщение
А пока послушай лекцию 1
https://www.youtube.com/watch?... bm4GeOjjc0
Первые 3 лекции я просмотрел еще перед тем как зарегистрироваться на этом форуме, по времени где то месяц назад. там в описании есть целый сайт этого курса, так же к каждой лекции прилагается и лабораторная. Именно там в первой лабораторной я познакомился с модулем tkinter и потом более подробно изучил его на ютюбе, научился создавать окна, кнопки, надписи в окнах, привязывать кнопки к командам и собственно прописывать эти команды. Так же на этих видеоуроках я получил знания что бы написать игру палочки и камень ножницы бумага, где игрок с компом по очереди выполняют ход, игрок ставит свой вариант камень ножницы или бумагу, потом ход делает комп перебирая варианты при помощи функции рандом. В общем ткинтер я немного помучал(часов 40) и решил что пора переходить к серьезному и зарегистрировался тут, а дальше вы в курсе что да как))
И кому интересно, вот коды игр
Камень, ножницы, бумага:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
from tkinter import *
from tkinter import messagebox
from random import *
from time import *
 
pc_score=0
user_score=0
pc_figur=""
user_figur=""
 
def kamen(): # Создаем команду камень
    global user_figur #Делаем переменную глобальной
    Kb["bg"]="green" # При нажатии этой кнопки она станет зеленой
    Nb["bg"]="white" # Когда нажмется кнопка Кб, то кнопка Нб станет белой
    Bb["bg"]="white"
    user_figur = "камень" #Присваиваем переменной значение
    Pcb["state"] = "normal" #когда нажмете кнопку Кб, кнопка Пкб(сгенерировать) станет активной, в ином случае она деактиворованна
 
def nozh():
    global user_figur
    Kb["bg"]="white"
    Nb["bg"]="green"
    Bb["bg"]="white"
    user_figur = "ножницы"
    Pcb["state"] = "normal"
 
def bumaga():
    global user_figur
    Kb["bg"]="white"
    Nb["bg"]="white"
    Bb["bg"]="green"
    user_figur = "бумага"
    Pcb["state"] = "normal"    
 
def go(): # Главная команда, в которой происходит основное действие
    global pc_figur, user_figur, user_score, pc_score # Делаем все переменные глобальными
    n4["text"] = "Выбор рс -" # Все что будет происходить ниже, отобразится после - "Выбор пк"
    for i in range(30): #Задаем параметр, чтобы ниже указанный цикл повторился 30 раз
        rand = randint(1, 4) #Присваиваем новой переменной значение (рандинт 1, 4 - это значит что выпадет число наугад от 1 до 4 не включительно, то есть 1, 2, или 3)
        if rand == 1:# Создаем условие что, если переменная будет равно 1
            pc_figur = "камень" # То в переменной пс_фигур появится слово "Камень"
        if rand == 2:
            pc_figur = "ножницы"
        if rand == 3:
           pc_figur = "бумага"
 
        n4["text"] = "выбор pc - " + pc_figur #Выводим в тексте результат, который получился в пк_фигур
        n4.update() #Обновляем текст, чтобы видеть изменения в окне программы
        sleep(0.1) # задаем временный интервал, с задержкой которого будет происходить вычисление. Именно для этой операции подключен модуль time
 
    if pc_figur == user_figur: # Задаем условие, если у пк фигур и у юзер фигур выпадут одинакове значения, то
        messagebox.showinfo("Результат", "Ничья") #Вот этот подмодуль выведет окно под названием - результат, а в окне будет написано Ничья
    else: #Тут обьявляем что будет, если значения в условии иф будут разными  
        if pc_figur == "камень" and user_figur == "ножницы": #Если у пк фигур выпадет камень, а у юзера ножницы
            pc_score +=1                                     #То к значению пк фигур прибавится +1
            messagebox.showinfo("Результат", "ПК победил")   #И этот подмодуль выдаст сообщение, что пк фигур победил
        if pc_figur == "камень" and user_figur == "бумага":           # Далее подбираются все возможные варианты и пишутся результаты
            user_score +=1
            messagebox.showinfo("Результат", "Вы победили")
        if pc_figur == "ножницы" and user_figur == "бумага":
            pc_score +=1
            messagebox.showinfo("Результат", "ПК победил")
        if pc_figur == "ножницы" and user_figur == "камень":
            user_score +=1
            messagebox.showinfo("Результат", "Вы победили")
        if pc_figur == "бумага" and user_figur == "камень":
            pc_score +=1
            messagebox.showinfo("Результат", "ПК победил")
        if pc_figur == "бумага" and user_figur == "ножницы":
            user_score +=1
            messagebox.showinfo("Результат", "Вы победили")
 
        n5["text"] = "Игрок-" + str (user_score) # Это надпись в углу, в которой ведется счет, программа переводит результат из полученного числа в формат текста и записывает результат
        n6["text"] = "PC - " + str (pc_score) # То же самое только для пк
 
    Pcb["state"] = "disabled" #После проведения всех операций, программа сново делает кнопку Пкб (сгенерировать) не активной.
                        #Оформление окна
w1 = Tk()
w1.title("KNB")
 
n1 = Label(w1, text='Камень, ножницы, бумага', fg = ("Orange"))
n1.grid(row=0, column =1)
 
n2=Label(w1, text="Выбор игрока")
n2.grid(row=1, column=1)
 
Kb=Button(w1, text="Камень", command = kamen)
Kb.grid(row=2, column=0)
 
 
Nb=Button(w1, text="Ножницы", command = nozh)
Nb.grid(row=2, column=1)
 
Bb=Button(w1, text="Бумага", command = bumaga)
Bb.grid(row=2, column=2)
 
n3=Label(w1, text="Выбор компьютера", fg=("Blue"))
n3.grid(row=3, column=1)
 
Pcb=Button(w1, text="Сгенерировать", command = go)
Pcb["state"]="disabled"
Pcb.grid(row=4, column=1)
 
 
n4=Label(w1, text="Выбор рс - 0", fg=("Red"))
n4.grid(row=5, column=1)
 
n5=Label(w1, text="Игрок - 0", fg=("Green"))
n5.grid(row=6, column=0)
 
n6=Label(w1, text="PC - 0", fg=("Blue"))
n6.grid(row=6, column=5)
 
w1.mainloop()
Палочки:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
from tkinter import *
from random import *
n = 20
 
 
def user(): #создаем команду User
    global n #даем переменной n глобальное значение
    u = vvod.get() #присваеваем переменной u значение вводимого в окно числа
    n = n - int(u)#отнимаем от n то значение, которое ввели в окно, int нужен для того, чтобы перевести введенную информацию в окно из текстового формата в цифровой
    pal.config(text = n*'|')# Выдаем на экран оставшиеся количество палочек
    kol.config(text = str(n)) #Изменяем цифру под палочками на соответствующее им количество
 
    if n == 1: #Задаем значение что при победе н должна будет ровняться 1
        kol.config(text = 'Вы победили', fg = 'black') #выводим результат в случае победы
 
def pc(): # Создаем новую команду
    global n
 
    if n > 3: # Задаем условия, выполнять до тех пор, пока н не будет меньше 3
        p = randint(1, 3) # ДАем переменной значение при киспользовании которого будет рандомно выпадать число от 1 до 3
        n = n - p #После результата отнимаем от о полученное выше значение
        pal.config(text = n*'|') #Выводим на экран результат (Оставшееся количество палочек)
    else: #Задаем еще одно значение, которое будет выполнятся только после того, как прекратит выполнение значения if в данной команде
         p = n - 1 # Как только в if закончатся вычисления, кнопка будет отнимать от н только по 1 палочке
         n = n - p #Присваиваем н результат верхнего вычисления
         pal.config(text = n*'|') # ВЫводим на экран полученное количество палочек
         
    kol.config(text = str(n)) # Выводим на экран полученное число цифр в виде текста при помощи команды str
    if n == 1:#Задаем значение что при победе н должна будет ровняться 1
            kol.config(text = 'pc win', fg = 'red') #Выводим на экран сообщение в случае побелы ПК
    
 
w1 = Tk()
 
w1.geometry('600x250')
 
 
nad = Label(w1, text = 'Введите от 1 до 3')
nad.config(font = ('Arial', 10, 'bold'))
nad.pack()
 
vvod = Entry(w1, width = 30)
vvod.pack()
 
pal = Label(w1, text = n*'|')
pal.config(font = ('Arial', 70, 'bold'))
pal.pack()
 
kol=Label(w1, text = str(n))
kol.pack()
 
but1 = Button(w1, text = 'Ваша очередь', bg = 'red', width = 10, command = user)
but1.pack()
 
but2 = Button(w1, text = 'Очередь пк', bg = 'green', width = 10, command = pc)
but2.pack()
              
w1.mainloop()
Коды писал практически сам, изредка подсматривая в сложные моменты, а создание окон, кнопок, и всего что касается внешней оболочки, выучил практически наизусть и писал просто из памяти
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
19.02.2019, 18:52

Ищу доброго человека, который прособеседует по java
Ищу доброго человека чтобы поспрашивал по java, дабы проверить знания. Мечу на позицию java junior. Хочется проверить свои знания перед...

Кр по питону ?
У меня третий вариант и я не могу решить как это делать

Лабораторная по питону
Есть 2 емкости : кубическая с ребром Ф, цилиндрическая с высотой Н и радиусом R. Определить поместится ли жидкость объемом М в первую...

Задание по питону
Дана последовательность случайных чисел длиной n. Выбросить из ряда те элементы, значение которых равно a и b. Вывести полученное, а затем...

Питону не понравилось
import threading, time flag = True def proc(n): while flag==True: print(n) time.sleep(0.3) ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
300
Закрытая тема Создать тему
Новые блоги и статьи
интеграция AnyLogic с самописным REST API и переход на Odoo
anaschu 03.07.2026
Успешная интеграция AnyLogic с самописным REST API и переход на промышленную Odoo WMS Сегодня проделал огромный путь от простой симуляции физических процессов до построения полноценной. . .
Поиск всех путей на ориентированном графе. Linux
dcc0 02.07.2026
Переработка старого кода из моей статьи. Через несколько переработок от PHP кода к C89 (надеюсь, 89). Но довольно запутанно получилось. Код для Linux. Но если убрать time и то, что с ним. . .
Сам себя обучал rest api
anaschu 02.07.2026
Педагогический лайфхак: Почему чистый REST API для ученика намного круче, чем готовые библиотеки Когда мы отказались от капризного JAR-файла AnyLogic и переписали код на стандартный HttpClient,. . .
rest api anylogic - выполнение модели на своём русском сайте
anaschu 02.07.2026
Как подружиться с AnyLogic Cloud API, победить провайдеров и развернуться Java-бэкенд в Docker на бесплатном хостинге: Двухдневный лог борьбы Всем привет! Хочу поделиться свежим (и довольно. . .
Где деньги лежат
kumehtar 02.07.2026
Это - японская подводная лодка I-52 (тип C2, кодовое имя Momi) вышла из Японии в марте 1944 года с миссией в оккупированную немцами Францию (Лорьян). Это была одна из «Янаги»-миссий по обмену. . .
Krabik для WoW 3.3.5a, многоязычный
AmbA 02.07.2026
Допилил бота, думаю что окончательно. Изменения: - добавлена многоязычность - добавлено снятие скриншотов - добавлено поддержание бафов хождения по воде (для жреца, дк и шамана) - и так, по. . .
Алиса нашла кучу ошибок компиляции и запуска в проекте, который без проблем компилировался и запускался)))
anaschu 30.06.2026
Я пока посмеюся, но завтра проверю. А вообще интерсно. Дал алисе файл, в котором точно нет ошибок компиляции и запуска, и попросил их найти. Нашла кучу))) Критические ошибки, мешающие компиляции и. . .
сукцессия 16. Общий обзор, в основном что бы другие ии поняли
anaschu 29.06.2026
# Передаточный документ: модель микоризной сукцессии (для нового чата) Этот документ предназначен для того, чтобы новый чат Claude мог продолжить работу без необходимости заново разбираться в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru