Mein Programm generiert eine zufällige Zeichenfolge mit einer zufälligen Anzahl von Buchstaben von 10 bis 20.
def program():
import random
import sys
x=['q','w','e','r']
y=random.randint(10,20)
for t in range (0,y):
w=random.randint(0,3)
e=x[w]
sys.stdout.write(e)
Das Programm druckt eine zufällige Zeichenfolge wie 'wwwweewwqqrrrwwqqeeqqww'. Wie würde ich diese Zeichenfolge als Variable speichern?
6 Antworten
Speichern Sie es in einer Variablen, anstatt zu schreiben:
e=''
for t in range (0,y):
w=random.randint(0,3)
e += x[w]
e
ist eine leere Variable und jedes Mal, wenn Sie den Wert x[w]
hinzufügen.
Ich würde auch empfehlen, print()
über sys.stdout.write(e)
zu verwenden, da Sie keine zusätzlichen Importe benötigen - wie sys
, print()
ist eingebaut.
In diesem Fall kann ich die Verwendung eines Tupels für x=['q','w','e','r']
vorschlagen, da diese schneller sind. Also: x=('q','w','e','r'1)
Wenn Sie dies jedoch später ändern müssen, steht Ihnen diese Option nicht zur Verfügung (da sie unveränderlich sind).
def program():
import random
x=['q','w','e','r']
y=random.randint(10,20)
mystr=''
for t in range (0,y):
w=random.randint(0,3)
e=x[w]
mystr=mystr+e
Sie können Ihre Schleife durch ein Listenverständnis ersetzen und join()
verwenden:
e = ''.join([random.choice(x) for _ in range(0, y)])
Ausgabe:
qwewwwereeeqeqww
Wenn Sie möchten, können Sie program()
die Ausgabevariable wie folgt zurückgeben:
def program():
import random
import sys
x=['q','w','e','r']
y=random.randint(10,20)
output = ''
for t in range (0,y):
w=random.randint(0,3)
e=x[w]
output+=e
# The print is stored in 'output'
# Return the output
return output
result = program()
So etwas wie (habe das Programm nicht getestet, sollte funktionieren ... berühmte letzte Worte).
# imports at start of file, not in def
import random
import sys
# I would never call a def 'program', kind of generic name, avoid
def my_program(): # camel case, PEP-8
x=['q','w','e','r']
z='' # initialize result as an empty string
for _ in range (0, random.randint(10,20)):
z+=x[random.randint(0,3)] # add a letter to string z
return z
"_" wird häufig für eine Wegwerfvariable verwendet, siehe Was ist der Zweck der einzelnen Unterstrichvariablen" _ "in Python? In diesem Fall wird das _ nirgendwo verwendet.
Eine einfache Möglichkeit, dies zu tun, besteht darin, eine neue Zeichenfolgenvariable zu erstellen und einfach den Operator +=
zu verwenden, um jedes Zeichen auf eine neue Zeichenfolge zu verketten. Ihr Code könnte sein
def program():
import random
import sys
x=['q','w','e','r']
y=random.randint(10,20)
z = '';
for t in range (0,y):
w=random.randint(0,3)
e=x[w]
z += e;
Dieser Code fügt jedes Zeichen nur einer Zeichenfolgenvariablen z
in Ihrer for-Schleife hinzu, und dieser Zeichenfolgenwert sollte in z
gespeichert werden.
Verwandte Fragen
Verknüpfte Fragen
Neue Fragen
python
Python ist eine dynamisch typisierte Mehrzweck-Programmiersprache mit mehreren Paradigmen. Es wurde entwickelt, um schnell zu lernen, zu verstehen, zu verwenden und eine saubere und einheitliche Syntax durchzusetzen. Bitte beachten Sie, dass Python 2 ab dem 01.01.2020 offiziell nicht mehr unterstützt wird. Fügen Sie für versionenspezifische Python-Fragen das Tag [python-2.7] oder [python-3.x] hinzu. Wenn Sie eine Python-Variante (z. B. Jython, PyPy) oder eine Bibliothek (z. B. Pandas und NumPy) verwenden, fügen Sie diese bitte in die Tags ein.