Лаб. 2 Python (Вариант 1)
.docx
import random import time start = time.time() def ip_random(): ipOne = str(random.randint(0, 255)) ipTwo = str(random.randint(0, 255)) ipThree = str(random.randint(0, 255)) ipFour = str(random.randint(0, 255)) ipFull=ipOne+"."+ipTwo+"."+ipThree+"."+ipFour return ipFull with open("ip.log","w") as fileIp: for i in range(10000): fileIp.write(ip_random()+"\n") while True: count=0 with open("ip.log","r") as fileIp: data=fileIp.readlines() for i in range(10000): for j in range(10000): if i!=j and data[i] == data[j]: del data[i] count+=1 if count>0: with open("ip.log","a") as fileIp: for i in range(count): fileIp.write(ip_random() + "\n") if count==0: break end = time.time() print((end-start))
'''a=1 b=format(a, 'b') lenb = 8-len(b) print('0'*lenb+b)''' with open("ip_solve.log", "w") as fileAdress: print("") masks=["255.255.255.255", "255.255.255.254", "255.255.255.252", "255.255.255.248", "255.255.255.240", "255.255.255.224", "255.255.255.192", "255.255.255.128", "255.255.255.0", "255.255.254.0", "255.255.252.0", "255.255.248.0", "255.255.240.0", "255.255.224.0", "255.255.192.0", " 255.255.128.0", "255.255.0.0", "255.254.0.0", "255.252.0.0", "255.248.0.0", "255.240.0.0", "255.224.0.0", "255.192.0.0", "255.128.0.0", " 255.0.0.0", " 254.0.0.0", "252.0.0.0", "248.0.0.0", "240.0.0.0", "224.0.0.0", "192.0.0.0", "128.0.0.0", "0.0.0.0"] count=0 while True: mask=input("Введите маску (пример: 255.192.0.0): ") listMask=list(mask.split(".")) for i in range(len(masks)): if mask != masks[i]: count+=1 if count==len(masks): print("Неверная маска!") continue else: break #print(listMask) def splitting(listMask): for i in range(len(listMask)): listMask[i] = '0'*(8 - len(format(int(listMask[i]), 'b'))) + format(int(listMask[i]), 'b') '''перевод маски в двоичную систему с добавлением 0 до 8 символов в строке''' #print(listMask) lenMaskI = len(listMask[0]) listMask=[[x] for x in listMask] '''каждый элемент добавляется в новый список в списке''' #print(listMask) lenMask=len(listMask) #print(lenMaskI) for i in range(lenMask): listMask[i]=[x for x in ''.join(listMask[i])] '''каждый элемента списка в списке разделяется посимвольно на отдельные элементы''' #print(listMask) for i in range(lenMask): for j in range(lenMaskI): listMask[i][j]=int(listMask[i][j]) '''перевод вссех элементов в число''' return listMask #print(splitting(listMask)) listMask=splitting(listMask) #print("listMask: ",listMask) listIp=list(range(10000)) with open("ip.log", "r") as fileIp: data = fileIp.readlines() data = [line.rstrip() for line in data] #прочитает без пробельных символов for i in range(10000): listIp = list(data[i].split(".")) '''создание списка с ip адресом''' #print("ip adress: ",listIp) #print(splitting(listIp)) listIp=splitting(listIp) #print("listIp: ",listIp) listAdressStr="" listAdress = [list(range(8)) for _ in range(4)] '''создание списке заполненного 4-мя списками с 8-ю элементами''' for k in range(4): for j in range(8): listAdress[k][j]=listMask[k][j] and listIp[k][j] listAdress[k][j]=str(listAdress[k][j]) listAdress[k]=[''.join(listAdress[k])] '''определение адреса сети, перевод в число и объединение в единое число''' listAdressStr+=str(int(str(listAdress[k][0]), 2))+"." #print("adress 2: ",listAdress) #listAdressStr=listAdress[0][0] lenListAdress=len(listAdressStr) listAdressStr=listAdressStr[:lenListAdress-1] '''удаление лишней точки в конце строки''' #print("adress 10: ",listAdressStr) with open("ip_solve.log", "a") as fileAdress: fileAdress.write(listAdressStr + "\n") '''a='0' b='1' c=a and b print(int(str(b),2))'''
import csv '''FILENAME = "users.csv" users = [ ['Tom', 28], ['Alice', 23], ['Bob', 34] ]''' listUsers=[] quantity=int(input("Введите количество спортсменов: ")) for i in range(quantity): while True: user = list(input("Введите фамилию спортсмена, количество побед и доп. показатель через пробел (пример: Иванов 10 256): ").split(" ")) if len(user)==3: #user[1]=int(user[1]) #user[2]=int(user[2]) listUsers.append(user) break else: print("Ошибка ввода!") with open("players.csv", "w", newline="") as players: columns = ["Спортсмен", "Количество побед", "Доп. показатель"] writer = csv.writer(players) writer.writerow(columns) writer.writerows(listUsers) listUsers=[] with open("players.csv", "r", newline="") as players: reader = csv.reader(players) for row in reader: #row[1]=int(row[1]) #row[2] = int(row[2]) listUsers.append(row) listUsers = listUsers[1:] for i in range(len(listUsers)): listUsers[i][1]=int(listUsers[i][1]) listUsers[i][2] = int(listUsers[i][2]) for i in range(len(listUsers)): for j in range(len(listUsers)): if i != j: if listUsers[i][1] > listUsers[j][1]: listUsers[i], listUsers[j] = listUsers[j], listUsers[i] if listUsers[i][1] == listUsers[j][1]: if listUsers[i][2] > listUsers[j][2]: listUsers[i], listUsers[j] = listUsers[j], listUsers[i] #print(listUsers) listUsers[0]+="1" count=1 for i in range(1,len(listUsers)): if listUsers[i][1] == listUsers[i-1][1] and listUsers[i][2] == listUsers[i-1][2]: listUsers[i]+=listUsers[i-1][3] else: count+=1 listUsers[i]+=str(count) for i in range(len(listUsers)): del listUsers[i][1] del listUsers[i][1] with open("results.csv", "w", newline="") as results: columns = ["Спортсмен", "Место"] writer = csv.writer(results) writer.writerow(columns) writer.writerows(listUsers) #print(listUsers)
import os import random import string import shutil #shutil.rmtree("C://Users/astan/PycharmProjects/pythonProject/example") os.mkdir("C://Users/astan/PycharmProjects/pythonProject/example") for i in range(10000): fileName = ''.join(random.choices(string.ascii_letters + string.digits, k=random.randint(1, 15))) filePath = os.path.join("C://Users/astan/PycharmProjects/pythonProject/example", fileName) f = open(filePath, "w")
import re import os symbols="^[a-zA-Z0-9]+$" while True: searchString = input("Введите строку из латинских букв и цифр: ") #searchStringLower = searchString.lower() check=re.match(symbols, searchString) is not None if check==True: break else: print("Ошибка ввода!") listFileNames = os.listdir("C://Users/astan/PycharmProjects/pythonProject/example") count=0 for i in range(len(listFileNames)): #listFileNames[i] = listFileNames[i].lower() if searchString in listFileNames[i]: count+=1 print(f"\nКол-во файлов, названия которых содежит {searchString}: ", count)
import re import collections with open("article_rus.txt", encoding="utf8") as fileText: data = fileText.readlines() data = [line.rstrip() for line in data] #прочитает без пробельных символов dataString="" for i in range(len(data)): dataString+=data[i].lower() #for i in range(len(data)): #dataString = re.split(r'\W|\d', dataString) dataString = re.split(r'\W+', dataString) #разобьёт строку на список из слов без символов, которые не являются буквами dataString = dataString[:len(dataString)-1] #без учёта последнего пустого элемента списка #print(dataString) dataStringSymbol="" for i in range(len(data)): dataStringSymbol+=dataString[i].lower() #соединение всех слов #print(dataStringSymbol) for i in range(len((dataString))): dataStringSymbol = [x for x in ''.join(dataString)] #список из символов всего текста #print(dataStringSymbol) #for i in range (len(dataStringSymbol)): count = collections.Counter(dataStringSymbol) #отсортированный словарь с количеством встречи каждого символа #print(count) for key in count.keys(): count[key] = round(count[key]/len(dataStringSymbol), 5) count = {key: count[key] for key in sorted(count, key=count.get, reverse=True)} #print(count) with open("article_rus_solve.txt", "w", encoding="utf8") as fileTextSolve: for key in count.keys(): fileTextSolve.write(f"{key}: {str(count[key])}\n") #fileTextSolve.write((_pickle.dumps(count)))