1

Тема: Простенькі програми для новачків. (ТІЛЬКИ ДЛЯ НОВАЧКІВ)

Ідея не моя, але я переклав на українську, і комусь знадобиться.

koloda = [2,3,4,5,6,7,8,9,10,11,] * 4
igrok = [14,15,16,17,18,19,20,21]
import random
random.shuffle(koloda)
random.shuffle(igrok)
print('Зіграєм в очко?')
count = 0

while True:
    choice = input('    Будете брати карту? 1-Воізьму  /2-Досить  ')
    if choice == '1':
        current = koloda.pop()
        print('    Вам попалась карта  %d' %current)
        count += current
        if count > 21:
            print('   Вибачте, але ви програли')
            print('-------------------'*3)
            print('    Гра починається заново')
            count=0
        elif count == 21:
            print('   Вітаю, ви набрали 21!')
            print('-------------------'*3)
            print('   Гра починається заново')
            count=0
        
        else:
            print('У вас %d очків.' %count)
    elif choice == '2':
        edit = igrok.pop()
        print('У противника %s очків' %edit)
        if (int(edit))>=(int(count)):
            print('-------------------'*3)
            print('Ви програли.')
            print('-------------------'*3)
            print('Гра починається заново')
            count=0
          
        else:
            print('-------------------'*3)
            print('ВИ ВИГРАЛИ!')
            print('-------------------'*3)
            print('Гра починається заново')
            count=0
Подякували: koala, Chemist-i2

2

Re: Простенькі програми для новачків. (ТІЛЬКИ ДЛЯ НОВАЧКІВ)

Будь ласка, поміняйте тег quote на code.

Подякували: Irbis1

3

Re: Простенькі програми для новачків. (ТІЛЬКИ ДЛЯ НОВАЧКІВ)

Але як, я не можу редагувати повідомлення

4

Re: Простенькі програми для новачків. (ТІЛЬКИ ДЛЯ НОВАЧКІВ)

Здається я ставив тег code

5

Re: Простенькі програми для новачків. (ТІЛЬКИ ДЛЯ НОВАЧКІВ)

yurahomyk написав:

Але як, я не можу редагувати повідомлення

Бо треба увійти з одного акаунту :)

6

Re: Простенькі програми для новачків. (ТІЛЬКИ ДЛЯ НОВАЧКІВ)

VTrim написав:
yurahomyk написав:

Але як, я не можу редагувати повідомлення

Бо треба увійти з одного акаунту :)

Та буває, що поробиш

7

Re: Простенькі програми для новачків. (ТІЛЬКИ ДЛЯ НОВАЧКІВ)

VTrim написав:
yurahomyk написав:

Але як, я не можу редагувати повідомлення

Бо треба увійти з одного акаунту :)

Якийсь із них треба заблокувати тоді, інакше пункт 2.1 порушується.

8

Re: Простенькі програми для новачків. (ТІЛЬКИ ДЛЯ НОВАЧКІВ)

Оцей видаліть

9

Re: Простенькі програми для новачків. (ТІЛЬКИ ДЛЯ НОВАЧКІВ)

Ця програма взята з книги Віктора Трофімова.
Вона містить потрійні парні лапки, що використовуються для виведення багаторядкового тексту без втрати переносів.
Команду quit() для виходу із інтерпретатора, а також "пусту" функцію input() для затримання програми (якщо запустите програму без передостаннього рядка, то все зрозумієте).
Ця програма для новачків.

print("""Назвіть число,

яке не менше 80 і не більше 150.

не менше 90 або рівне 150.

Таких чисел може буте більше десятка.

Знайдіть хоч би одне.""")


x = int(input("Введіть бажане число: "))

res = (not(x < 80) and not(x > 150)\
       and not(x < 90) or (x == 150))

if (res):
    print("ви вгадати")
else:
    print("не вгадали")
input("Нажміть Enter для щоб вийти...")
quit()

10 Востаннє редагувалося koala (20.02.2020 23:10:52)

Re: Простенькі програми для новачків. (ТІЛЬКИ ДЛЯ НОВАЧКІВ)

Перетворімо умову на зрозумілішу.

res = (not(x < 80) and not(x > 150) and not(x < 90) or (x == 150))

Міняємо всі not на протилежні умови.

res = (x >= 80) and (x <= 150) and (x >= 90) or (x == 150)

Число, більше чи рівне 90, гарантовано буде більше за 80. Викидаємо зайву умову.

res = (x <= 150) and (x >= 90) or (x == 150)

Число, що дорівнює 150, буде задовільняти першим двом умовам. Викидаємо.

res = (x <= 150) and (x >= 90)

Переписуємо умови впорядковано, з найменшого числа за зростанням.

res = (90 <= x) and (x <= 150)

Скористаємося ланцюговими порівняннями - особливістю Python.

res = (90 <= x <= 150)

Правда, красиво?

Подякували: leofun01, pluszz, ping, Irbis, Eff1c5

11

Re: Простенькі програми для новачків. (ТІЛЬКИ ДЛЯ НОВАЧКІВ)

"Нанотехнології для нової поліції" :D
Дана програма використовує цикл for, параметр range().

countAuto = int(input("Введіть кількість авто:  "))

for i in range(countAuto):
    speed = int(input('введіть швидкість авто: '))

    if (speed > 110 and speed <=431):
        print('водій порушує. Штраф йому! ')
    elif (speed > 431):
        print('Цей автомобіль побив рекорд Bugatti Veyron ')
    elif (speed == 0):
        print('автомобіль стоїть на місці')
    elif (speed < 0):
        print('відємної швидкості не існує')
    else:
        print('водій не порушує')

12

Re: Простенькі програми для новачків. (ТІЛЬКИ ДЛЯ НОВАЧКІВ)

Задача на логіку:
Створіть програму, яка виводить ряд з десяти чисел з даною закономірністю 8 4 9 3 10 2 11 1 12 0 ,
за допомогою команди "for i in range...".

Прихований текст

for i in range(5):
    print("значення i =", i, end="")
    i = i * 2
    print(", змінене значення i = i * 2 =", i)

13

Re: Простенькі програми для новачків. (ТІЛЬКИ ДЛЯ НОВАЧКІВ)

Irbis написав:
        print('відємної швидкості не існує')

Скажіть, звідки ви взяли таку інформацію ? (можна в приватні повідомлення)
Я не буду насміхатися. Мені важливо дізнатися, що є причиною поширення такої інформації.

14

Re: Простенькі програми для новачків. (ТІЛЬКИ ДЛЯ НОВАЧКІВ)

leofun01 написав:
Irbis написав:
        print('відємної швидкості не існує')

Скажіть, звідки ви взяли таку інформацію ? (можна в приватні повідомлення)
Я не буду насміхатися. Мені важливо дізнатися, що є причиною поширення такої інформації.

*SCRATCH* Просто автомобіль не може рухатись з від'ємною швидкістю, навіть якщо він включить задню.

15

Re: Простенькі програми для новачків. (ТІЛЬКИ ДЛЯ НОВАЧКІВ)

Irbis написав:

*SCRATCH* Просто автомобіль не може рухатись з від'ємною швидкістю, навіть якщо він включить задню.

Це в школі вам таке говорили ?
Чи це пов'язано з використанням класичної метрики на просторі, про яку йшлося в темі про від'ємні величини ? Якщо так, то хто нав'язав вам використання такої метрики для обчислення швидкості переміщення фізичних об'єктів ?

16

Re: Простенькі програми для новачків. (ТІЛЬКИ ДЛЯ НОВАЧКІВ)

leofun01 написав:
Irbis написав:

*SCRATCH* Просто автомобіль не може рухатись з від'ємною швидкістю, навіть якщо він включить задню.

Це в школі вам таке говорили ?
Чи це пов'язано з використанням класичної метрики на просторі, про яку йшлося в темі про від'ємні величини ? Якщо так, то хто нав'язав вам використання такої метрики для обчислення швидкості переміщення фізичних об'єктів ?

Від'ємна маса, та відносні об'єми з площами в моїй голові вкладаються. А ось від'ємна швидкість поза моїм розумінням нашого світу. Адже для від'ємної швидкості необхідний від'ємний час. Простий висновок:

Щоб довести існування від'ємної швидкості, -  треба довести існування  від'ємного часу 

17

Re: Простенькі програми для новачків. (ТІЛЬКИ ДЛЯ НОВАЧКІВ)

leofun01 написав:
Irbis написав:

*SCRATCH* Просто автомобіль не може рухатись з від'ємною швидкістю, навіть якщо він включить задню.

Це в школі вам таке говорили ?
Чи це пов'язано з використанням класичної метрики на просторі, про яку йшлося в темі про від'ємні величини ? Якщо так, то хто нав'язав вам використання такої метрики для обчислення швидкості переміщення фізичних об'єктів ?

Я інвестую час у своє ремесло, а "класична метрика на просторі" і т.д, не має до цього відношення.

18

Re: Простенькі програми для новачків. (ТІЛЬКИ ДЛЯ НОВАЧКІВ)

Випадок, коли всі впевнені, що існує від'ємна величина 8) :

for i in range(31):
    x = int(input('Введіть температуру на вулиці:  '))
    if (x < -273 or x > 50):
        print("ти де, йо-ма-йо?")
    elif (x < 0):
        print("холодно, вдягни шапку!")
    elif (x > 0):
        print("тепло, візьми окуляри.")
    elif (x == 0):
        print("нормально, всеодно візьми шапку. ")

19 Востаннє редагувалося pluszz (24.02.2020 22:37:01)

Re: Простенькі програми для новачків. (ТІЛЬКИ ДЛЯ НОВАЧКІВ)

Прихований текст
#-*- coding: utf-8 -*-
import getch
"""
Класична загадка про глечики з ascii графікою
"""

def select_first_jug():
    gui[16] = gui[16].replace('\033[34m******* ', '\033[33m******* ')
    gui[17] = gui[17].replace('\033[34m*   * ', '\033[33m*   * ')
    gui[17] = gui[17].replace('\033[34m***** ', '\033[33m***** ')
    gui[18] = gui[18].replace('\033[34m*   * ', '\033[33m*   * ')
    gui[18] = gui[18].replace('\033[34m** ** ', '\033[33m** ** ')
    gui[19] = gui[19].replace('\033[34m*     * ', '\033[33m*     * ')
    gui[19] = gui[19].replace('\033[34m******* ', '\033[33m******* ')
    gui[20] = gui[20].replace('\033[34m*       * ', '\033[33m*       * ')
    gui[20] = gui[20].replace('\033[34m********* ', '\033[33m********* ')
    gui[21] = gui[21].replace(' \033[34m*     * ', ' \033[33m*     * ')
    gui[21] = gui[21].replace(' \033[34m******* ', ' \033[33m******* ')
    gui[22] = gui[22].replace('\033[34m***** ', '\033[33m***** ')
    return 1

def no_select_first_jug():

    gui[16] = gui[16].replace('\033[33m******* ', '\033[34m******* ')
    gui[17] = gui[17].replace('\033[33m*   * ', '\033[34m*   * ')
    gui[17] = gui[17].replace('\033[33m***** ', '\033[34m***** ')
    gui[18] = gui[18].replace('\033[33m*   * ', '\033[34m*   * ')
    gui[18] = gui[18].replace('\033[33m** ** ', '\033[34m** ** ')
    gui[19] = gui[19].replace('\033[33m*     * ', '\033[34m*     * ')
    gui[19] = gui[19].replace('\033[33m******* ', '\033[34m******* ')
    gui[20] = gui[20].replace('\033[33m*       * ', '\033[34m*       * ')
    gui[20] = gui[20].replace('\033[33m********* ', '\033[34m********* ')
    gui[21] = gui[21].replace(' \033[33m*     * ', ' \033[34m*     * ')
    gui[21] = gui[21].replace(' \033[33m******* ', ' \033[34m******* ')
    gui[22] = gui[22].replace('\033[33m***** ', '\033[34m***** ')
    return 0


def select_second_jug():
    gui[18] = gui[18].replace('\033[34m***** ', '\033[33m***** ')
    gui[19] = gui[19].replace('\033[34m*   * ', '\033[33m*   * ')
    gui[19] = gui[19].replace('\033[34m***** ', '\033[33m***** ')
    gui[20] = gui[20].replace('\033[34m*     * ', '\033[33m*     * ')
    gui[20] = gui[20].replace('\033[34m******* ', '\033[33m******* ')
    gui[21] = gui[21].replace('\033[34m*   * ', '\033[33m*   * ')
    gui[21] = gui[21].replace('\033[34m***** ', '\033[33m***** ')
    gui[22] = gui[22].replace('\033[34m*** ', '\033[33m*** ')
    return 2

def no_select_second_jug():
    gui[18] = gui[18].replace('\033[33m***** ', '\033[34m***** ')
    gui[19] = gui[19].replace('\033[33m*   * ', '\033[34m*   * ')
    gui[19] = gui[19].replace('\033[33m***** ', '\033[34m***** ')
    gui[20] = gui[20].replace('\033[33m*     * ', '\033[34m*     * ')
    gui[20] = gui[20].replace('\033[33m******* ', '\033[34m******* ')
    gui[21] = gui[21].replace('\033[33m*   * ', '\033[34m*   * ')
    gui[21] = gui[21].replace('\033[33m***** ', '\033[34m***** ')
    gui[22] = gui[22].replace('\033[33m*** ', '\033[34m*** ')
    return 0

def no_select_thre_jug():
    gui[13] = gui[13].replace('\033[33m***********', '\033[34m***********')
    gui[14] = gui[14].replace('\033[33m*         *', '\033[34m*         *')
    gui[15] = gui[15].replace('\033[33m*       *', '\033[34m*       *')
    gui[16] = gui[16].replace('\033[33m*       *', '\033[34m*       *')
    gui[17] = gui[17].replace('\033[33m*         *', '\033[34m*         *')
    gui[18] = gui[18].replace('\033[33m*           *', '\033[34m*           *')
    gui[19] = gui[19].replace('\033[33m*           *', '\033[34m*           *')
    gui[20] = gui[20].replace('\033[33m*         *', '\033[34m*         *')
    gui[21] = gui[21].replace('\033[33m*       *', '\033[34m*       *')
    gui[22] = gui[22].replace('\033[33m******* ', '\033[34m******* ')
    gui[14] = gui[14].replace('\033[33m***********', '\033[34m***********')
    gui[15] = gui[15].replace('\033[33m*********', '\033[34m*********')
    gui[16] = gui[16].replace('\033[33m********', '\033[34m********')
    gui[17] = gui[17].replace('\033[33m***********', '\033[34m***********')
    gui[18] = gui[18].replace('\033[33m*************', '\033[34m*************')
    gui[19] = gui[19].replace('\033[33m*************', '\033[34m*************')
    gui[20] = gui[20].replace('\033[33m***********', '\033[34m***********')
    gui[21] = gui[21].replace('\033[33m*********', '\033[34m*********')
    return 0

def select_thre_jug():
    gui[13] = gui[13].replace('\033[34m***********', '\033[33m***********')
    gui[14] = gui[14].replace('\033[34m*         *', '\033[33m*         *')
    gui[15] = gui[15].replace('\033[34m*       *', '\033[33m*       *')
    gui[16] = gui[16].replace('\033[34m*       *', '\033[33m*       *')
    gui[17] = gui[17].replace('\033[34m*         *', '\033[33m*         *')
    gui[18] = gui[18].replace('\033[34m*           *', '\033[33m*           *')
    gui[19] = gui[19].replace('\033[34m*           *', '\033[33m*           *')
    gui[20] = gui[20].replace('\033[34m*         *', '\033[33m*         *')
    gui[21] = gui[21].replace('\033[34m*       *', '\033[33m*       *')
    gui[22] = gui[22].replace('\033[34m******* ', '\033[33m******* ')
    gui[14] = gui[14].replace('\033[34m***********', '\033[33m***********')
    gui[15] = gui[15].replace('\033[34m*********', '\033[33m*********')
    gui[16] = gui[16].replace('\033[34m*********', '\033[33m*********')
    gui[17] = gui[17].replace('\033[34m***********', '\033[33m***********')
    gui[18] = gui[18].replace('\033[34m*************', '\033[33m*************')
    gui[19] = gui[19].replace('\033[34m*************', '\033[33m*************')
    gui[20] = gui[20].replace('\033[34m***********', '\033[33m***********')
    gui[21] = gui[21].replace('\033[34m*********', '\033[33m*********')
    return 3

gui = [ "\033[34m*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*",
        "|    \033[33mПеред вами три глечики: перший -\033[34m           |",
        "*    \033[33mна п'ять літрів, другий на три а\033[34m           *",
        "|    \033[33mтретій на вісім. Два перші порожні, а\033[34m      |",
        "*    \033[33mтретій  до країв налитий водою.\033[34m            *",
        "|    \033[33mРозділіть воду так щоб в першім і третім\033[34m   |",
        "*    \033[33mглечиках було по чотири літри води.\033[34m        *",
        "|    \033[33mДля керування вказівником використовуємо\033[34m   |",
        "*    \033[33mклавіші керування курсором\033[34m                 *",
        "|    \033[33mпробіл для вибору 'ctrl+c' для виходу\033[34m      |",
        "|                                               |",
        "*                                               *",
        "|                                \033[31m8              \033[34m|",
        "*                           \033[34m***********         \033[34m*",
        "|                           \033[34m***********        \033[34m |",
        "*       \033[31m0                    \033[34m*********      \033[34m    *",
        "|    \033[34m*******                 \033[34m*********          \033[34m|",
        "*     \033[34m*   *        \033[31m0        \033[34m***********\033[34m         *",
        "|     \033[34m*   *      \033[34m*****     \033[34m*************       \033[34m |",
        "*    \033[34m*     *     \033[34m*   *     \033[34m*************      \033[34m  *",
        "|   \033[34m*       *   \033[34m*     *     \033[34m***********       \033[34m  |",
        "*    \033[34m*     *     \033[34m*   *       \033[34m*********         \033[34m *",
        "|     \033[34m*****       \033[34m***         \033[34m*******         \033[34m  |",
        "*       ^                                       *",
        "|                                               |",
        "*                                               *",
        "|                                               |",
        "*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\033[0m"]

def main():
    first_jug = 0 #Кількість рідини в першім глечику
    second_jug = 0 #Кількість рідини в другім глечику
    thre_jug = 8 #Кількість рідини в третім глечику
    selecte = 0 #Вибраний глечик
    while True:
        for row in gui:
            print(row)
        if first_jug == 4 and thre_jug == 4:
            print('Перемога')
            break
        key = getch.getch()
        print(gui[23][8])
        if gui[23][8] == '^':
            a = 5 - first_jug#Вільне місце в глечику
            if key == 'C':
                gui[23] = gui[23][:20]+'^'+gui[23][20:]
                gui[23] = gui[23][:8]+' '+gui[23][10:]
            if key == ' ':
                if selecte == 0:
                    selecte = select_first_jug()

                elif selecte == 1:
                    selecte = no_select_first_jug()

                elif selecte == 3:
                    selecte = no_select_thre_jug()
                    if a <= thre_jug:
                        first_jug = 5
                        thre_jug -= a
                    elif a > thre_jug:
                        first_jug += thre_jug
                        thre_jug = 0
                elif selecte == 2:
                    selecte = no_select_second_jug()
                    if a <= second_jug:
                        first_jug = 5
                        second_jug -= a
                    elif a > second_jug:
                        first_jug += second_jug
                        second_jug = 0

        elif gui[23][19]== '^':
            a = 3 - second_jug#Вільне місце в глечику
            if key == 'C':
                gui[23] = gui[23][:19]+' '+gui[23][20:]
                gui[23] = gui[23][:33]+'^'+gui[23][34:]
            if key == 'D':
                gui[23] = gui[23][:19]+' '+gui[23][20:]
                gui[23] = gui[23][:8]+'^'+gui[23][9:]
            if key == ' ':
                if selecte == 0:
                    selecte = select_second_jug()

                elif selecte == 2:
                    selecte = no_select_second_jug()

                elif selecte == 3:
                    selecte = no_select_thre_jug()
                    if a <= thre_jug:
                        second_jug = 3
                        thre_jug -= a
                    elif a > thre_jug:
                        second_jug += thre_jug
                        thre_jug = 0
                elif selecte == 1:
                    selecte = no_select_first_jug()
                    if a <= first_jug:
                        second_jug = 3
                        first_jug -= a
                    elif a > second_jug:
                        second_jug += first_jug
                        first_jug = 0


        elif gui[23][33]=='^':
            if key == 'D':
                gui[23] = gui[23][:19]+'^'+gui[23][20:]
                gui[23] = gui[23][:33]+' '+gui[23][34:]
            if key == ' ':
                if selecte == 0:
                    selecte = select_thre_jug()

                elif selecte == 3:
                    selecte = no_select_thre_jug()

                elif selecte == 2:
                    selecte = no_select_second_jug()
                    thre_jug += second_jug
                    second_jug = 0
                elif selecte == 1:
                    selecte = no_select_first_jug()
                    thre_jug += first_jug
                    first_jug = 0
        gui[15] = gui[15][:13]+str(first_jug)+gui[15][14:]
        gui[17] = gui[17][:29]+str(second_jug)+gui[17][30:]
        gui[12] = gui[12][:38]+str(thre_jug)+gui[12][39:]

        if first_jug == 0 : gui[21] = gui[21][:11]+"     "+gui[21][16:]
        if first_jug >= 1 : gui[21] = gui[21][:11]+"*****"+gui[21][16:]
        if first_jug >= 2 : gui[20] = gui[20][:10]+"*******"+gui[20][17:]
        if first_jug < 2 : gui[20] = gui[20][:10]+"       "+gui[20][17:]
        if first_jug >= 3 : gui[19] = gui[19][:11]+"*****"+gui[19][16:]
        if first_jug < 3 : gui[19] = gui[19][:11]+"     "+gui[19][16:]
        if first_jug >= 4 : gui[18] = gui[18][:12]+"* *"+gui[18][15:]
        if first_jug < 4 : gui[18] = gui[18][:12]+"   "+gui[18][15:]
        if first_jug == 5 : gui[17] = gui[17][:12]+"***"+gui[17][15:]
        if first_jug < 5 : gui[17] = gui[17][:12]+"   "+gui[17][15:]
        if second_jug == 0 : gui[21] = gui[21][:28]+"   "+gui[21][31:]
        if second_jug >= 1 : gui[21] = gui[21][:28]+"***"+gui[21][31:]
        if second_jug < 2 : gui[20] = gui[20][:27]+"     "+gui[20][32:]
        if second_jug >= 2 : gui[20] = gui[20][:27]+"*****"+gui[20][32:]
        if second_jug < 3 : gui[19] = gui[19][:28]+"   "+gui[19][31:]
        if second_jug == 3 : gui[19] = gui[19][:28]+"***"+gui[19][31:]
        if thre_jug == 0 : gui[21] = gui[21][:45]+"       "+gui[21][52:]
        if thre_jug >= 1 : gui[21] = gui[21][:45]+"*******"+gui[21][52:]
        if thre_jug < 2 : gui[20] = gui[20][:44]+"         "+gui[20][53:]
        if thre_jug >= 2 : gui[20] = gui[20][:44]+"*********"+gui[20][53:]
        if thre_jug < 3 : gui[19] = gui[19][:43]+"           "+gui[19][54:]
        if thre_jug >= 3 : gui[19] = gui[19][:43]+"***********"+gui[19][54:]
        if thre_jug < 4 : gui[18] = gui[18][:43]+"           "+gui[18][54:]
        if thre_jug >= 4 : gui[18] = gui[18][:43]+"***********"+gui[18][54:]
        if thre_jug < 5 : gui[17] = gui[17][:44]+"         "+gui[17][53:]
        if thre_jug >= 5 : gui[17] = gui[17][:44]+"*********"+gui[17][53:]
        if thre_jug < 6 : gui[16] = gui[16][:40]+"       "+gui[16][47:]
        if thre_jug >= 6 : gui[16] = gui[16][:40]+"*******"+gui[16][47:]
        if thre_jug < 7 : gui[15] = gui[15][:40]+"       "+gui[15][47:]
        if thre_jug >= 7 : gui[15] = gui[15][:40]+"*******"+gui[15][47:]
        if thre_jug < 8 : gui[14] = gui[14][:34]+"         "+gui[14][43:]
        if thre_jug == 8 : gui[14] = gui[14][:34]+"*********"+gui[14][43:]
        print ('\033c')

if __name__=='__main__':
    main()
Подякували: Irbis1

20

Re: Простенькі програми для новачків. (ТІЛЬКИ ДЛЯ НОВАЧКІВ)

pluszz, вас часом ProgramBandera не вкусив?

Подякували: leofun01, ostap34PHP2