41

Re: Не працює програма

P.Y. написав:

index -= 1 Там якийсь мінус перед дорівнює

Це не помилка :)
Ця операція робить те ж саме, що

index=index-1

Також є операції +=, *=, /= та ін.
Подібний синтаксис використовується не лише в Python, а і в більшості Сі-подібних мов.

Так, так.. Я вже виправив...

42 Востаннє редагувалося Monolith (29.04.2015 14:10:07)

Re: Не працює програма

Удосконалював інтерпретатор HQ9+, і зрозумів, що в мене виходить повністю нова мова програмування.Ще не дійшов до класів і функцій, тому роблю за допомогою того, що знаю.Почав це писати заради того, щоб закріпити вже отримані знання.
Загалом в моїй мові програмування(ще не назвав її, але є варіант "Удав" - пародія на Python. :|) такий синтаксис:
команда-аргумент(и)  *FACEPALM*
Загалом зараз принцип роботи мого інтерпретатора такий:
1.Відкриваємо файл з вихідним кодом(на моїй мові програмування);
2.Розбиваємо код на рядки по символу ";";
3.Розбиваємо рядок на дві чаcтини по символу "-";
4.Залежно від команди виконується певна дія.
Загалом все спочатку норм, але коли цикл робить більше ніж одне коло, то програма не працює так як треба... :(
Ось код:

# 27.04.2015 - 29.04.2015
# Udav

doc = open("code.txt", "r")
code = doc.read()

str = code.split(";")

for i_str in str:

    str_com = i_str.split("-")
    com = str_com[0]
    
    if com == "print":
            print(str_com[1])
        
    elif com == "do":
        if str_com[1] == "quine": 
            print(code)
        
    else:
        print("Syntax error")


doc.close()
    
input()

Ось зміст файлу "code.txt":
print-hello world;
print-this is text

Перший рядок виводиться, але другий - ні.Спрацьовує чомусь else.Може хтось підсказати в чому проблема?

43

Re: Не працює програма

Оце я даю - заплутася в совїй же мові програмування.Загалом все працює так як треба, просто вихідний код на моїй мові програмування треба записувати без переносу:

print-hello;print-goodbye

Так, що пішов удосконалювати своє творіння(в мене є пару ідей). *CRAZY*

44 Востаннє редагувалося Monolith (29.04.2015 14:25:47)

Re: Не працює програма

Вже удосконалив!Загалом міняємо всього один рядок:

str = code.split("\n")

І тепер в моїй мові програмування можна записувати команди переносячи кожну наступну на інший рядок.Також ";" писати не треба.

45

Re: Не працює програма

А чому, коли я додаю до програми текст на українській мові, то вона не запускається?Користуюсь Notepad++.Поклацав вгорі в меню кодування - але нічого не змінилось.
Прописав на початку:

# coding: utf8

Результат такий же... :(

46

Re: Не працює програма

А так?

# coding: utf8
... u'рядок' ...

47

Re: Не працює програма

Не працює:

# coding: utf8
print(u"привіт")
input()

Дивно...

48 Востаннє редагувалося P.Y. (30.04.2015 23:45:57)

Re: Не працює програма

misha_bondar_2012 написав:

А чому, коли я додаю до програми текст на українській мові, то вона не запускається?Користуюсь Notepad++.Поклацав вгорі в меню кодування - але нічого не змінилось.
Прописав на початку:

# coding: utf8

Результат такий же... :(

Схоже, Notepad++ зберіг програму в кодуванні windows-1251, а Python намагається прочитати її як utf-8, що йому не вдається через несумісність кодувань (обидва кодування ascii-сумісні, тому, поки в тексті програми використовується лише латиниця, проблеми не виникає, але перша ж кирилична літера викличе помилку).
Спробуйте прописати # coding: cp1251 у першому чи другому рядку програми.

49

Re: Не працює програма

P.Y. написав:
misha_bondar_2012 написав:

А чому, коли я додаю до програми текст на українській мові, то вона не запускається?Користуюсь Notepad++.Поклацав вгорі в меню кодування - але нічого не змінилось.
Прописав на початку:

# coding: utf8

Результат такий же... :(

Схоже, Notepad++ зберіг програму в кодуванні windows-1251, а Python намагається прочитати її як utf-8, що йому не вдається через несумісність кодувань (обидва кодування ascii-сумісні, тому, поки в тексті програми використовується лише латиниця, проблеми не виникає, але перша ж кирилична літера викличе помилку).
Спробуйте прописати # coding: cp1251 у першому чи другому рядку програми.

В Notepad++ на панелі є ще вкладка кодування, там можна змінити на utf8.