• Июня 16, 2019, 06:36:05 am
• Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
Новости: Вебинар о выборе IT профессии и руководство для новичков: http://bit.ly/2HG2vFp

Автор Тема: Evch_PythonStart_Online  (Прочитано 1236 раз)

evch

  • Пользователи
  • *
  • Сообщений: 45
    • Просмотр профиля
Re: Evch_PythonStart_Online
« Ответ #30 : Декабря 20, 2018, 06:48:15 pm »
Еще один вариант решения второй задачи(оба вызывают у меня сомнения)

string_one = "kitten"
string_two = "sitting"
distance = 0

if len(string_one) < len(string_two):
    temp = int(len(string_two)) - int(len(string_one))
    for i in range(temp):
        string_one += " "
elif len(string_two) < len(string_one):
    temp = int(len(string_one)) - int(len(string_two))
    for i in range(temp):
        string_two += " "

for i in range(len(string_two)):

    if string_one[i] != string_two[i]:
        print(string_one[i], string_two[i])
        distance += 1


print("distance - ",distance)

Alexander Ts

  • Преподаватели
  • Пользователи
  • *
  • Сообщений: 11812
    • Просмотр профиля
    • E-mail
Re: Evch_PythonStart_Online
« Ответ #31 : Декабря 21, 2018, 01:44:40 am »
Еvch

К сожалению оба варианта не особо верны например
Cat и Cnat

тут расстояние Левинштейна 1

evch

  • Пользователи
  • *
  • Сообщений: 45
    • Просмотр профиля
Re: Evch_PythonStart_Online
« Ответ #32 : Января 22, 2019, 02:55:51 pm »
Добрый  день. Размахался с работой и праздниками, теперь можно и поучиться.  :)
Решение домашнего задания, лекция №8 "Словари"
Доп.Д.З. №2(целое число (от 1 до 100) из римской записи в обычные цифры)
Вариант 1
rome_num = str.upper(input("Input Roman numbers: "))
rome_dic = {"I": 1, "V": 5, "X": 10, "L": 50, "C": 100}
count = 0
for i in rome_num:
    if i == "I":
        dig = rome_dic[i]
    elif i == "V":
        dig = rome_dic[i]
        if dig > count:
            count *= -1
    elif i == "X":
        dig = rome_dic[i]
        if dig > count:
            count *= -1
    elif i == "L":
        dig = rome_dic[i]
        if dig > count:
            count *= -1
    elif i == "C":
        dig = rome_dic[i]
        if dig > count:
            count *= -1
    count += dig
print(count)
Вариант 2
rome_num = int(input("Input Roman numbers: "))
rome_dic = {1:"I",2:"II",3:"III",4:"IV",5:"V",6:"VI",7:"VII",8:"VIII",9:"IX",10:"X",20:"XX",30:"XXX",40:"XL",50:"L",60:"LX",70:"LXX",80:"LXXX",90:"XC",100:"C"}
if rome_num > 0 and rome_num <= 10:
    print(rome_dic[rome_num])
elif rome_num % 10 == 0:
    print(rome_dic[rome_num])
elif rome_num % 10 != 0:
    temp1 = rome_dic.get((rome_num // 10)*10)
    temp2 = rome_dic.get(rome_num % 10)
    print(temp1+temp2)

evch

  • Пользователи
  • *
  • Сообщений: 45
    • Просмотр профиля
Re: Evch_PythonStart_Online
« Ответ #33 : Января 22, 2019, 02:58:07 pm »
лекция №10 "Функции 1"
Доп.Д.З. №1(следующий член этой последовательности)
import math
input_str = str(input("Input: "))
list_0 = input_str.split(",")
list_1 = []
for i in list_0:
    list_1.append(int(i))


def var_1(list_t):
    temp1 = list_t[1] - list_t[0]
    temp2 = 1
    for i in range(1, len(list_t)-1):
        if list_t[i] - list_t[i-1] != temp1:
            temp2 = 0
    if temp2 == 0:
        return temp2
    else:
        return temp1


def var_2(list_t):
    if list_t[0] != 0:
        temp1 = list_t[1] / list_t[0]
        temp2 = 1
        for i in range(1, len(list_t)-1):
            if list_t[i] / list_t[i-1] != temp1:
                temp2 = 0
        if temp2 == 0:
            return temp2
        else:
            return temp1
    else:
        temp2 = 0
        return temp2


def var_3(list_t):
    if list_t[0] == 1:
        temp1 = math.log(list_t[1], 2)
        temp2 = 1
        for i in range(3, len(list_t)+1):
            j = i - 1
            if i**temp1 != list_t[j]:
                temp2 = 0
        if temp2 == 0:
            return temp2
        else:
            return temp1
    else:
        temp2 = 0
        return temp2


temp = 0
if var_1(list_1) != 0:
    temp = var_1(list_1)
    list_1.append(list_1[(len(list_1)-1)]+temp)
    print("Next number = ", list_1[len(list_1) - 1])
elif var_2(list_1) != 0:
    temp = int(var_2(list_1))
    list_1.append(list_1[(len(list_1)-1)]*temp)
    print("Next number = ", list_1[len(list_1) - 1])
elif var_3(list_1) != 0:
    temp = int(var_3(list_1))
    list_1.append((len(list_1) + 1)**temp)
    print("Next number = ", list_1[len(list_1) - 1])
else:
    print("Wrong list!")
print(list_1)

Доп.Д.З. №2(Найдите самый большой палиндром, полученный умножением двух трехзначных чисел.)
def is_polindrom(num):
    raw = str(num)
    r_num = int(raw[::-1])
    if num == r_num:
        return True
    else:
        return False


pol = []
for i in range(100, 1000):
    for j in range(100, 1000):
        if is_polindrom(i*j) == True:
            pol.append(i*j)
max_polindrom = (max(pol))

dig_1 = 0
dig_2 = 0

for i in range(999, 100, -1):
    temp = max_polindrom // i
    if temp*i == max_polindrom:
        print(temp)
        print(i)
        break

print(max_polindrom)


evch

  • Пользователи
  • *
  • Сообщений: 45
    • Просмотр профиля
Re: Evch_PythonStart_Online
« Ответ #34 : Января 22, 2019, 03:03:53 pm »
лекция №11 "Функции 2"
Доп.Д.З. №1(все возможные комбинации)
import copy


def shift(append_to_list, list_start):
 for i in list_start:
    new_list = copy.copy(list_start)
    new_append = copy.copy(append_to_list)
    new_append.append(i)
    new_list.remove(i)
    if len(new_list) == 0:
        print(new_append + new_list)
        continue
    shift(new_append, new_list)


length = int(input("Input length of list: "))
list_start = [i for i in range(1, length+1)]


shift([], list_start)


Alexander Ts

  • Преподаватели
  • Пользователи
  • *
  • Сообщений: 11812
    • Просмотр профиля
    • E-mail
Re: Evch_PythonStart_Online
« Ответ #35 : Января 23, 2019, 01:37:21 am »
Еvch

Действительно с размахом приступили к решению задач. Ну  решили их верно

evch

  • Пользователи
  • *
  • Сообщений: 45
    • Просмотр профиля
Re: Evch_PythonStart_Online
« Ответ #36 : Января 31, 2019, 10:29:23 am »
Добрый  день. Решение домашнего задания, лекция №12 "Чтение и запись данных в файл"
Доп.Д.З. №1(частота использования букв в тексте)
red_text = open("test_en.txt", "r")
my_string_temp = red_text.read()
my_string = ""
for i in my_string_temp:
    if i.isalpha():
        my_string += i
    else:
        continue
my_list = list(my_string)
my_list.sort()
my_set = set(my_string)
my_dic = {}

for i in my_set:
    let = my_string.count(i)
    my_dic[i] = let


def sort_dictionary_by_value(dictionary):
    list_of_sorted_pairs = [(k, dictionary[k]) for k in sorted(dictionary.keys(), key=dictionary.get, reverse=True)]
    return list_of_sorted_pairs

max_dic = sort_dictionary_by_value(my_dic)

for x in max_dic:
    print(x[0], x[1])

red_text.close

Доп.Д.З. №2(слова, которые есть и в первом, и во втором файле одновременно.)
red_text_one = open("text1.txt", "r")
red_text_two = open("text2.txt", "r")
result = open("result.txt", "w")

list_one = list(red_text_one.read().replace(",", " ").replace(".", " ").replace("\n", " ").split(" "))
list_two = list(red_text_two.read().replace(",", " ").replace(".", " ").replace("\n", " ").split(" "))

set_one = set(list_one)
set_two = set(list_two)
set_all = set_one.intersection(set_two)

for i in set_all:
    if i == "":
        continue
    result.write(str(i))
    result.write("\n")

red_text_one.close()
red_text_two.close()
result.close()


Alexander Ts

  • Преподаватели
  • Пользователи
  • *
  • Сообщений: 11812
    • Просмотр профиля
    • E-mail
Re: Evch_PythonStart_Online
« Ответ #37 : Февраля 03, 2019, 01:36:07 pm »
Еvch

Решение верное. Как видите работа с данными в Python так же не очень сложная.

evch

  • Пользователи
  • *
  • Сообщений: 45
    • Просмотр профиля
Re: Evch_PythonStart_Online
« Ответ #38 : Февраля 04, 2019, 09:55:59 am »
Добрый день. Python в целом очень понравился, планирую дальше изучать углубленно.
Вам огромное СПАСИБО за прекрасные лекции и отличную подачу учебного материала(Проходил и Java Марафон-1)!
По ощущениям реально продвнулся в навыках.
Интересно конечно ваше мнение(краткая характеристика) как учителя, получается у меня писать код или на это больно смотреть? Можно в личку чтобы я сильно не краснел.

Alexander Ts

  • Преподаватели
  • Пользователи
  • *
  • Сообщений: 11812
    • Просмотр профиля
    • E-mail
Re: Evch_PythonStart_Online
« Ответ #39 : Февраля 05, 2019, 11:59:29 am »
Еvch

У вас получается это факт.  Теперь находите более сложные задания и пытайтесь решить их. Т.е. определите вектор развития Python сейчас это пержде всего Web или анализ данных. Ну и развивайтесь в этих направлениях.