Привет всем! Я только начал изучать Python 3, учу теорию и делаю простейшие вещи на практике.
Учусь, пока что, на его туториалах (
Роман Сокунов)
Так вот, в туториале
#26 идет речь о генерации имен с фамилиями, их сортировка и запись в файл.
Т.к я не люблю, что бы все было прямолинейно, я пытаюсь самостоятельно что-то дополнить, и у меня получился вот такой код:
import time, sys, random
firstname = ['Andrey', "Sasha", "Artem", "Roma"]
lastname = [" veskii"," Kross"," Lylka"]
good =[]
all = []
c = 0
a = 0
b = 0
index = 1
print("Система >> Выполняется скрипт запуска ...")
time.sleep(0.3)
print("Система >> Загрузка обновлений.")
time.sleep(0.2)
print("Система >> .... .... .... ....", random.randint(0, 25), "%")
print("Система >> .... .... .... ....", random.randint(25, 50), "%")
print("Система >> .... .... .... ....", random.randint(50, 75), "%")
print("Система >> .... .... .... .... 100 %")
print("Система >> Выгрузка данных.")
print("Система >> Оптимизация работы.")
print("Система >> Генерация трафика.")
print("Система >> ...")
print("Система >> Систама готова к использованию.")
time.sleep(0.50)
start = input("Система >> Выберите деятельность работы (введите цифру):\n1) Создание личностей\n2) Крах системы\n")
if start == "1":
time.sleep(0.5)
print('Начинаю создание личностей, типа: № Имя Фамилия.')
time.sleep(0.5)
start_name = "Лица с фамилией"
print(start_name, lastname[b] + ":")
time.sleep(0.5)
for one in lastname:
for one in firstname:
good.insert(c, firstname[a] + lastname[b])
all.insert(c, firstname[a] + lastname[b])
print(index, "".join(good))
c = c + 1
a = a + 1
index = index + 1
good = []
if a > len(firstname) - 1:
f = open ("/Users/Stas/Desktop/Python/" + lastname[b] + ".txt", 'a')
f.write(lastname[b] + '\n')
f.close()
print(lastname[b], ' = ', good)
f = open(lastname[b] + ".txt", 'w')
good = str(good)
f.write(good)
f.close()
b = b + 1
a = 0
index = 1
if b <= len(lastname) - 1:
print(start_name, lastname[b] + ":")
time.sleep(0.3)
else:
print("Создание личностей закончена.")
time.sleep(1)
print("Всего создано:", len(all), "лиц.")
time.sleep(1)
print("Конец работы.")
time.sleep(1.5)
name = input("NONAME >> Как твое имя, командос? \n")
time.sleep(0.5)
q = input("NONAME >> Ты готов к порабощению мира? \n")
if q == "Да":
time.sleep(0.5)
print("NONAME >>", name.capitalize(), ", я рад. Создания спец. отряда началось.")
elif q == "да":
time.sleep(0.5)
print("NONAME >>", name.capitalize(), ", я рад. Создания спец. отряда началось.")
elif q == "Нет":
time.sleep(0.5)
print("NONAME >>", name.capitalize(), ", я огорчен твоим ответом. Я вынужден принять крайниее меры.")
time.sleep(2)
error = "[ERROR] >> 502. 0x106c670e0 \n"
print(error * 50)
print("HACK >> Взлом .... .... .... ....",random.randint(0, 25),'%')
time.sleep(0.1)
print("HACK >> Взлом .... .... .... ....",random.randint(25, 50),'%')
time.sleep(0.1)
print("HACK >> Взлом .... .... .... ....",random.randint(50, 75),'%')
time.sleep(0.1)
print("HACK >> Взлом .... .... .... .... 100 %")
time.sleep(0.3)
print("NONAME >> Желаю успехов, а мне нужно идти.")
elif q == "нет":
time.sleep(0.5)
print("NONAME >>", name.capitalize(), ", я огорчен твоим ответом. Я вынужден принять крайниее меры.")
time.sleep(2)
error = "[ERROR] >> 502. 0x106c670e0 \n"
print(error * 50)
print("HACK >> Взлом .... .... .... ....",random.randint(0, 25),'%')
time.sleep(0.1)
print("HACK >> Взлом .... .... .... ....",random.randint(25, 50),'%')
time.sleep(0.1)
print("HACK >> Взлом .... .... .... ....",random.randint(50, 75),'%')
time.sleep(0.1)
print("HACK >> Взлом .... .... .... .... 100 %")
time.sleep(0.3)
print("NONAME >> Все данные выкачены. Желаю успехов, а мне нужно идти.")
if start == "2":
time.sleep(0.5)
print("Систем >> Запущен процесс очистки. rm -rf")
time.sleep(2)
error = "[ERROR] >> 502. 0x106c670e0 \n"
print(error * 50)
time.sleep(0.3)
print("Система >> Все данные были удалены. Выполняю reboot.")
Проблема возникает такая:
Начинаю создание личностей, типа: № Имя Фамилия.
Лица с фамилией veskii:
1 Andrey veskii
2 Sasha veskii
3 Artem veskii
4 Roma veskii
veskii = []
Лица с фамилией Kross:
Traceback (most recent call last):
File "/Users/Stas/Desktop/Python/script3 (names1).py", line 34, in <module>
good.insert(c, firstname[a] + lastname[b])
AttributeError: 'str' object has no attribute 'insert'
Если мы убирем вот этот кусок кода:
f = open ("/Users/Stas/Desktop/Python/" + lastname[b] + ".txt", 'a')
f.write(lastnames[b] + '\n')
f.close()
print(lastnames[b], ' = ', good)
f = open(lastnames[b] + ".txt", 'w')
good = str(good)
f.write(good)
То все работает как часы, как я и планировал, а именно создаются лица типа:
Какая фамилия:
№ Имя Фамилия
Другая фамилия:
№ Имя Фамилия (Номер в каждой фамилии начинается с 1)
и так далее..
Итак, суть вот в чем:
Нужно сделать создание имен из списка (firstname & lastname) имена с фамилией, которые будут пронумерованы и отделены друг от друга (код выше) + запись в файл, а именно, что бы создавался файл с фамилией, и туда записывалось вот так:
№ Имя Фамилия
№ Имя Фамилия
И так далее...
Потом, при переходи на другую фамилию, создавался другой файл, с именем новый фамилии, и туда записывались новые данные.
Много, много текста, извините, но я просто не могу понять, из-за чего не работает! Что не так!
За помощь, буду очень вам благодарен! Спасибо!
P.S Почему Питон не может записывать Русский текст в файлы?