TypeError: can't multiply sequence by non-int of type 'str'
Verfasst: Donnerstag 2. Juni 2011, 18:32
Hallo ich hätte da mal ne Frage, bei mir kommt immer wine Fehlermeldung:
Die versteh ich aber nicht, denn sie kommt, wenn ich übers fenster ersmal die seeds eingebe, dann meinen Text, den ich entschlüsseln will. Dann kommt diese Fehlermeldung. Aber wenn ich das im Hauprprogramm mache klappt alles
Wenn ihr kurz draufschauen könntet, wäre das sehr nett
. Danke im Voraus
Code: Alles auswählen
File "C:\Python31\Coder.py", line 343, in verschlüsseln
new=cv1(text,self.seed1,self.seed2,self.seed3)
File "C:\Python31\Coder.py", line 145, in cv1
neu=formel(i,seed1,seed2,seed3)
File "C:\Python31\Coder.py", line 142, in <lambda>
formel=lambda zahl,seed1,seed2,seed3: (zahl*seed1*seed2)+(10*seed3^2)
TypeError: can't multiply sequence by non-int of type 'str'







Wenn ihr kurz draufschauen könntet, wäre das sehr nett



Code: Alles auswählen
from math import ceil
from tkinter import *
def str_int(txt):
dic={}
txt=txt.lower()
values="abcdefghijklmnopqrstuvwxyz ,.!?äöü\nß#+-_*/°^§$%&{}[]()`´;@„“á’1234567890:"
zähler=9
for i in values:
zähler=zähler+1
dic[i]=zähler
txt=list(txt)
ausgabe=dict()
prüferKey=list()
for i in txt:
try:
ausgabe[i]=dic[i]
except KeyError:
i="-"
ausgabe[i]=dic[i]
prüferKey.append(ausgabe[i])
prüferKey=str(prüferKey)
for i,r in (("[",""),("]",""),(",",""),(" ","")):
prüferKey=prüferKey.replace(i,r)
ausgabe=int(prüferKey)
return ausgabe
def int_to_str(integer):
""" Zahl --------> String"""
integer=integer
integer=str(integer)
Keys="abcdefghijklmnopqrstuvwxyz ,.!?äöü\nß#+-_*/°^§$%&{}[]()`´;@„“á’1234567890:"
Keys=list(Keys)
dicI={}
ausgabeList=list()
merkeList=list()
k=9
for i in Keys:
k=k+1
merkeList.append(k)
k=-1
for i in merkeList:
k=k+1
dicI[i]=Keys[k]
integerList=list(integer)
neuList=[]
zählerBegin=0
zählerEnde=2
newString=""
for i in integerList:
a=integerList[zählerBegin:zählerEnde]
try:
newString=a[0]+a[1]
neuList.append(newString)
except:
pass
zählerBegin+=2
zählerEnde+=2
for i in neuList:
ausgabeList.append(dicI[int(i)])
merkeString=""
for i in ausgabeList:
merkeString=merkeString+"{0}".format(i)
return merkeString
def cv1(txt,seed1=2,seed2=3,seed3=4):
zahl=str_int(txt)
Counter=-1
strVar=""
Holder=[]
formelHolder=[]
for i in str(zahl):
Counter+=1
if Counter >=2:
Holder.append(strVar)
Counter=0
strVar=""
strVar += i
Holder.append(strVar)
formel=lambda zahl,seed1,seed2,seed3: (zahl*seed1*seed2)+(10*seed3^2)
for i in Holder:
i=int(i)
neu=formel(i,seed1,seed2,seed3)
formelHolder.append(neu)
return formelHolder[:]
def InStr(wert):
values=":§<>%&*°^´"
dic={}
HolderWert=""
Counter=-1
for i in values:
Counter+=1
dic[Counter]=i
for i in wert:
for z in str(i):
HolderWert +=dic[int(z)]
abteilung=len(str((i)))
return HolderWert+str(abteilung)
def OutStr(wert):
values=":§<>%&*°^´"
dic={}
HolderWert=""
Counter=-1
wieOft=int()
for i in values:
Counter +=1
dic[i]=Counter
for i in wert:
try:
wieOft=int(i)
except:
pass
Counter=-1
Counter2=0
for i in wert:
Counter +=1
try:
if Counter==wieOft:
HolderWert +="_"
Counter=0
Counter2 +=1
HolderWert += str(dic[i])
except:
pass
HolderWert=HolderWert.split("_")
del HolderWert[Counter2]
return HolderWert[:]
def cv2(zahl,seed1,seed2,seed3):
formel=lambda zahl,seed1,seed2,seed3: (zahl-10*seed3^2)/(seed1*seed2)
Counter=0
formelHolder=[]
strVar=""
for i in zahl:
i=int(i)
formelHolder.append(formel(i,seed1,seed2,seed3))
ausgabe=[]
for i in formelHolder:
strVar +=str(ceil(i))
return strVar
if __name__=="__main__":
t=str_int("hi wie gehts")
a=cv1("hi wie gehts",455,2456,25626)
z=InStr(a)
u=OutStr(z)
b=cv2(u,455,2456,25626)
k=int_to_str(b)
print(t,a,z,u,b)
class CoderFenster():
def __init__(self):
self.fenster=Tk()
self.infLabel=Label(self.fenster,text="Hier können sie Texte verschlüsseln")
self.verschlüsselnFrame=Frame(self.fenster,relief=RIDGE,bd=3)
self.verschlüsselnEntry=Entry(self.verschlüsselnFrame,width=20)
self.verschlüsselnButton=Button(self.verschlüsselnFrame,text="Verschlüsseln",command=self.verschlüsseln)
self.verschlüsselnText=Text(self.verschlüsselnFrame,wrap=WORD,height=30,width=50)
self.entschlüsselnFrame=Frame(self.fenster,relief=RIDGE,bd=3)
self.entschlüsselnEntry=Entry(self.entschlüsselnFrame,width=20)
self.entschlüsselnButton=Button(self.entschlüsselnFrame,text="Entschlüsseln",command=self.entschlüsseln)
self.entschlüsselnText=Text(self.entschlüsselnFrame,wrap=WORD,height=30,width=50)
self.seedFrame=Frame(self.fenster,relief=RIDGE,bd=3)
self.seed1Label=Label(self.seedFrame,text="Seed 1")
self.seed2Label=Label(self.seedFrame,text="Seed 2")
self.seed3Label=Label(self.seedFrame,text="Seed 3")
self.seedLabel=Label(self.seedFrame,text="Geben sie hier ihre Seeds ein")
self.seed1Entry=Entry(self.seedFrame)
self.seed2Entry=Entry(self.seedFrame)
self.seed3Entry=Entry(self.seedFrame)
self.seedButton=Button(self.seedFrame,text="Seeds als Variablen akzeptieren",command=self.accept)
self.infLabel.grid(row=1,column=1,columnspan=2,pady=10,padx=10)
self.seedFrame.grid(row=2,column=1,columnspan=2,pady=10,padx=10)
self.seedLabel.grid(row=1,pady=10,padx=10,column=2)
self.seed1Label.grid(row=2,column=1,pady=10,padx=10)
self.seed2Label.grid(row=2,column=2,pady=10,padx=10)
self.seed3Label.grid(row=2,column=3,pady=10,padx=10)
self.seed1Entry.grid(row=3,pady=10,padx=10,column=1)
self.seed2Entry.grid(row=3,column=2,pady=10,padx=10)
self.seed3Entry.grid(row=3,column=3,pady=10,padx=10)
self.seedButton.grid(row=4,pady=10,padx=10,column=2)
self.verschlüsselnFrame.grid(row=3,column=1,pady=10,padx=10)
self.verschlüsselnEntry.grid(row=2,column=1,pady=10,padx=10)
self.verschlüsselnButton.grid(row=1,column=1,pady=10,padx=10)
self.verschlüsselnText.grid(row=3,column=1,pady=10,padx=10)
self.entschlüsselnFrame.grid(row=3,column=2,pady=10,padx=10)
self.entschlüsselnEntry.grid(row=2,column=1,pady=10,padx=10)
self.entschlüsselnButton.grid(row=1,column=1,padx=10,pady=10)
self.entschlüsselnText.grid(row=3,column=1,padx=10,pady=10)
self.fenster.mainloop()
def accept(self):
self.seed1=self.seed1Entry.get()
self.seed2=self.seed2Entry.get()
self.seed3=self.seed3Entry.get()
def entschlüsseln(self):
text=self.entschlüsselnEntry.get()
def verschlüsseln(self):
self.verschlüsselnText.delete(END)
text=self.verschlüsselnEntry.get()
self.verschlüsselnEntry.delete(0,END)
new=cv1(text,self.seed1,self.seed2,self.seed3)
new=InStr(new)
self.verschlüsselnText.insert("0.00",new)
a=CoderFenster()