Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: Уроки по Python, обсуждение  (Прочитано 29401 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн MonoLife

  • Активист
  • *
  • Сообщений: 357
  • "Пилите, Шура, пилите!" ©
    • Просмотр профиля
    • Under sky of Half-Life
Re: Уроки по Python, обсуждение
« Ответ #180 : 23 Ноября 2014, 12:39:59 »
Цитировать
Python для начинающих
#Цисло с плавающей точкой
новый тип :)

chemtech

  • Гость
Re: Уроки по Python, обсуждение
« Ответ #181 : 25 Ноября 2014, 18:30:33 »
http://intepra.ru/wiki/doku.php?id=about_python

Пользователь решил продолжить мысль 26 Ноября 2014, 17:08:03:
checkio.org советую посмотреть кто учит Python
« Последнее редактирование: 26 Ноября 2014, 17:08:03 от chemtech »

chemtech

  • Гость
Re: Уроки по Python, обсуждение
« Ответ #182 : 06 Декабря 2014, 18:15:37 »
Не подскажите по python?

choice = input("Baш выбор: ")
print()
# выход
if choice =="О":
print( "До свидания.")

Что делает python() в этом коде?

И еще вопрос:

elif choice == "1":
        print("High Scores\n")
        print("NAME\tSCORE")
        for entry in scores:
            score, name = entry   
            print(name, "\t", score)

По поводу строки:
score, name = entryЕсли идет присвоение name = entry, зачем здесь score?

Спасибо.
« Последнее редактирование: 06 Декабря 2014, 18:20:54 от chemtech »

Оффлайн Azure

  • Модератор раздела
  • Старожил
  • *
  • Сообщений: 6017
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
Re: Уроки по Python, обсуждение
« Ответ #183 : 06 Декабря 2014, 20:36:13 »
Что делает python() в этом коде?
print() имеете ввиду? Переводит строку походу.
зачем здесь score?
По логике кода for entry in scores: — скорее всего scores это список и он может быть так называется "двумерный" т.е. 1 элемент может быть двойной и, следовательно, считывается в две переменные score и name.
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

chemtech

  • Гость
Re: Уроки по Python, обсуждение
« Ответ #184 : 06 Декабря 2014, 20:45:49 »
Azure,
Исходный код high_scores2 из учебника "Майкл Доусон - Программируем на Python"

Код: (python) [Выделить]
# High Scores 2.0
# Demonstrates nested sequences

scores = []

choice = None
while choice != "0":

    print(
    """
    High Scores 2.0
   
    0 - Quit
    1 - List Scores
    2 - Add a Score
    """
    )
   
    choice = input("Choice: ")
    print()

    # exit
    if choice == "0":
        print("Good-bye.")

    # display high-score table
    elif choice == "1":
        print("High Scores\n")
        print("NAME\tSCORE")
        for entry in scores:
            score, name = entry   
            print(name, "\t", score)

    # add a score
    elif choice == "2":
        name = input("What is the player's name?: ")
        score = int(input("What score did the player get?: "))
        entry = (score, name)
        scores.append(entry)
        scores.sort(reverse=True)
        scores = scores[:5]     # keep only top 5 scores

    # some unknown choice
    else:
        print("Sorry, but", choice, "isn't a valid choice.")
 
input("\n\nPress the enter key to exit.")

Т.е. print() просто печатает пустую строку?

Оффлайн Azure

  • Модератор раздела
  • Старожил
  • *
  • Сообщений: 6017
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
Re: Уроки по Python, обсуждение
« Ответ #185 : 06 Декабря 2014, 20:55:40 »
       name = input("What is the player's name?: ")
        score = int(input("What score did the player get?: "))
        entry = (score, name)
        scores.append(entry)
Ну как я и предполагал, массив(список) двойных элементов. И пустой print() да, просто пустая строка.
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

chemtech

  • Гость
Re: Уроки по Python, обсуждение
« Ответ #186 : 07 Декабря 2014, 10:31:38 »
Разбираю код hangman из учебника "Майкл Доусон - Программируем на Python"

Код: (python) [Выделить]
# Hangman Game
#
# The classic game of Hangman.  The computer picks a random word
# and the player wrong to guess it, one letter at a time.  If the player
# can't guess the word in time, the little stick figure gets hanged.

# imports
import random

# constants
HANGMAN = (
"""
 ------
 |    |
 |
 |
 |
 |
 |
 |
 |
----------
""",
"""
 ------
 |    |
 |    O
 |
 |
 |
 |
 |
 |
----------
""",
"""
 ------
 |    |
 |    O
 |   -+-
 |
 |   
 |   
 |   
 |   
----------
""",
"""
 ------
 |    |
 |    O
 |  /-+-
 |   
 |   
 |   
 |   
 |   
----------
""",
"""
 ------
 |    |
 |    O
 |  /-+-/
 |   
 |   
 |   
 |   
 |   
----------
""",
"""
 ------
 |    |
 |    O
 |  /-+-/
 |    |
 |   
 |   
 |   
 |   
----------
""",
"""
 ------
 |    |
 |    O
 |  /-+-/
 |    |
 |    |
 |   |
 |   |
 |   
----------
""",
"""
 ------
 |    |
 |    O
 |  /-+-/
 |    |
 |    |
 |   | |
 |   | |
 | 
----------
""")

MAX_WRONG = len(HANGMAN) - 1
WORDS = ("OVERUSED", "CLAM", "GUAM", "TAFFETA", "PYTHON")

# initialize variables
word = random.choice(WORDS)   # the word to be guessed
so_far = "-" * len(word)      # one dash for each letter in word to be guessed
wrong = 0                     # number of wrong guesses player has made
used = []                     # letters already guessed


print("Welcome to Hangman.  Good luck!")

while wrong < MAX_WRONG and so_far != word:
    print(HANGMAN[wrong])
    print("\nYou've used the following letters:\n", used)
    print("\nSo far, the word is:\n", so_far)

    guess = input("\n\nEnter your guess: ")
    guess = guess.upper()
   
    while guess in used:
        print("You've already guessed the letter", guess)
        guess = input("Enter your guess: ")
        guess = guess.upper()

    used.append(guess)

    if guess in word:
        print("\nYes!", guess, "is in the word!")

        # create a new so_far to include guess
        new = ""
        for i in range(len(word)):
            if guess == word[i]:
                new += guess
            else:
                new += so_far[i]             
        so_far = new

    else:
        print("\nSorry,", guess, "isn't in the word.")
        wrong += 1

if wrong == MAX_WRONG:
    print(HANGMAN[wrong])
    print("\nYou've been hanged!")
else:
    print("\nYou guessed it!")
   
print("\nThe word was", word)

input("\n\nPress the enter key to exit.")

wrong += 1 должен быть на одном уровне с else (в примере он на одном уровне с print)
Как вам кажется?

Оффлайн .ubuntufan

  • Активист
  • *
  • Сообщений: 638
    • Просмотр профиля
Re: Уроки по Python, обсуждение
« Ответ #187 : 07 Декабря 2014, 14:15:28 »
Цитировать
wrong += 1 должен быть на одном уровне с else (в примере он на одном уровне с print)
Как вам кажется?

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

chemtech

  • Гость
Re: Уроки по Python, обсуждение
« Ответ #188 : 07 Декабря 2014, 17:16:26 »
Еще вопрос:

Если присвоить значение по умолчанию одному из параметров в списке, то надо будет проделать
то же и со всеми следующими параметрами. Вот такой заголовок функции совершенно корректен:
def monkey_around(bananas = 100, barrel of = "yes", uncle = "monkey's"):А вот такой - нет:
def monkey_around(bananas = 100, barrel_of, uncle):Прочитав его, интерпретатор выдаст ошибку.

Это верно для всех версий Python?

Оффлайн .ubuntufan

  • Активист
  • *
  • Сообщений: 638
    • Просмотр профиля
Re: Уроки по Python, обсуждение
« Ответ #189 : 07 Декабря 2014, 17:37:39 »
Да. В списке аргументов сначала задаются обязательные positional arguments, затем опциональные keyword arguments. Также если positional arguments вообще нет, можно начинать сразу с keywords.
« Последнее редактирование: 09 Декабря 2014, 17:40:08 от .ubuntufan »

Оффлайн S3R1OUS

  • Новичок
  • *
  • Сообщений: 37
    • Просмотр профиля
Re: Уроки по Python, обсуждение
« Ответ #190 : 26 Апреля 2015, 15:10:41 »
Grigory Smirnov,
подскажите пожалуйста, что может быть не так: в Geany написан скритп, при нажатии на Run/Stop в дебаг, вылезает вот такая кака:
(Нажмите, чтобы показать/скрыть)
система украиноязычная, но как по мне - это не влияет на Geany.

Оффлайн Grigory Smirnov

  • Автор темы
  • Старожил
  • *
  • Сообщений: 1339
  • Дайте мне исходники, и я переверну Землю.
    • Просмотр профиля
    • Дафтер
Re: Уроки по Python, обсуждение
« Ответ #191 : 27 Апреля 2015, 13:48:36 »
S3R1OUS, хотя украинский язык и похож на русский, я плохо понимаю, что написано в красном окошке. Попробуйте Geany переустановить что ли, если с запуском питона через терминал проблем нет.

Оффлайн alsoijw

  • Старожил
  • *
  • Сообщений: 4062
  • Fedora 25 GNOME 3 amd64
    • Просмотр профиля
Re: Уроки по Python, обсуждение
« Ответ #192 : 27 Апреля 2015, 15:16:14 »
Grigory Smirnov, не очень похож.
S3R1OUS, привет мир запустится?print 'hello world'
Мало видеть нам начало - надо видеть и конец. Если видишь ты создание - значит где-то есть ТВОРЕЦ
Многие жалуются: геометрия в жизни не пригодилась. Ямб от хорея им приходится отличать ежедневно?

Оффлайн S3R1OUS

  • Новичок
  • *
  • Сообщений: 37
    • Просмотр профиля
Re: Уроки по Python, обсуждение
« Ответ #193 : 28 Апреля 2015, 09:41:53 »
Grigory Smirnov,
эту трудность решил установкой доп.пакетов. Теперь появилси другой вопрос: дано уравнение,
(Нажмите, чтобы показать/скрыть)
написал вот такой скрипт:

(Нажмите, чтобы показать/скрыть)
скрипт работает, но по условиям задания, результат должен быть "0.0", а у меня выдаёт "10.1073379274", при том что переменные "a" и "b" - "0" и "1" соответственно, и "a" и "b"  являются аргументами командной строки. Возможно скрипт неправильный из-за того что я писал его по последовательности действий, ведь в формуле не укзан приоритет (скобки) для каких либо операций. Обьясните на пальцах, пожалуста.

Пользователь решил продолжить мысль [time]28 Апрель 2015, 10:44:15[/time]:
alsoijw,
привет мир работает безотказно, я не могу понять принцип написания скрипта по математическим операциям для вычисления результатов формулы.

Пользователь решил продолжить мысль 28 Апреля 2015, 09:49:08:
вот весь скрипт
(Нажмите, чтобы показать/скрыть)
« Последнее редактирование: 28 Апреля 2015, 09:49:09 от S3R1OUS »

Оффлайн SergeyIT

  • Зануда.
  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 5738
  • Все по палатам!
    • Просмотр профиля
Re: Уроки по Python, обсуждение
« Ответ #194 : 28 Апреля 2015, 12:35:25 »
S3R1OUS, а числитель с знаменателем не пробовали поменять местами (согласно формуле)?
И текст вставляйте не картинкой
Извините, я все еще учусь

 

Страница сгенерирована за 0.021 секунд. Запросов: 22.