Ich schreibe zum ersten Mal einen Artikel über Python. Vor kurzem mag ich Nim, eine Nebensprache, aber da es wirklich Nebensprache ist, lerne ich parallel Python und verbringe meine Tage damit, meinen Freunden beizubringen, "Nim ist gut, George ...". .. Nun, die Geschichte ist aus, aber dieses Mal werde ich einen Artikel darüber schreiben, wie man sich an die Notation zur Aufnahme von Listen gewöhnt und gleichzeitig verschiedene Probleme mit der Notation zur Aufnahme von Listen in Python löst.
Zunächst von den Grundlagen
python
a=[0 for i in range(10)]
#[0,0,0,0,0,0,0,0,0,0]
Zum Beispiel die Gleichheitsfolge von Schnittpunkt 1
python
a=[i for i in range(10)]
#[0,1,2,3,4,5,6,7,8,9]
Mit der Funktion f (x)
python
def f(x):
return x**2
a=[f(i) for i in range(10)]
#[0,1,4,9,16,25,36,49,64,81]
#Oder sogar so
b=[i**2 for i in range(10)]
#[0,1,4,9,16,25,36,49,64,81]
Verwenden wir den Lambda-Ausdruck
python
a=[(lambda price,tax:price + (price * tax))(100*i,0.08) for i in range(10)]
#[0.0,108.0,216.0,324.0,432.0,540.0,648.0,756.0,864.0,972.0]
Bei Verwendung nur wenn
python
a=[i for i in range(10) if i%2==0]
#[0,2,4,6,8]
Bei Verwendung von if-else
python
a=[x if x%2==1 else 0 for x in range(10)]
#[0,1,0,3,0,5,0,7,0,9]
100 Münzen reihen sich mit der Vorderseite nach oben aneinander. Drehen Sie das zweite Vielfache von 2 um. Drehen Sie das Vielfache von 3 um. Drehen Sie das Vielfache von 4 um. Wenn Sie das der Reihe nach tun, welche Nummer ist die Münze auf der Vorderseite?
python
#Tabelle ist 1,Die Rückseite ist 0
#Für die zweite und darüber bestimmen die Gewinnchancen und Gewinnchancen einiger Zahlen, ob es vorne oder hinten ist
#Wenn es beispielsweise 2 ist, wird es nur einmal umgedreht ⇒"Wenn die Anzahl der Brüche gerade ist, ist die Münze zurück"
[print([k+1 for k,j in enumerate([0 if len([i for i in range(2,int(y/2)+1) if y%i==0])%2==0
else 1 for y in range(1,101)]) if j==1])]
#[4, 9, 16, 25, 36, 49, 64, 81, 100]
#Ich habe es bemerkt, als ich es versucht habe, aber x**Die Antwort ist die Zahl, die durch 2 dargestellt werden kann....(x**Weil sich der Bruchteil x von 2 überlappt)
#Eine andere Lösung
import math
[print([i**2 for i in range(2,int(math.sqrt(100))+1)])]
#[4, 9, 16, 25, 36, 49, 64, 81, 100]
#Es scheint, dass Sie die Bibliothek auch importieren können, also werde ich es versuchen
[print([i**2 for i in range(2,int([math.sqrt(100) for math in [__import__('math')]][0])+1)])]
#[4, 9, 16, 25, 36, 49, 64, 81, 100]
Nein, ich werde verrückt
python
[print([j for j in range(1,1001) if sum([i for i in range(1,int(j/2)+1) if j%i==0])==j])]
#[6,28,496]
python
[print(sorted([int(rd.uniform(0,100)) for rd in [__import__('random')] for i in range(100)]))]
python
[print([i for i in range(2,1000) if 0 not in
[i%j for j in range(2,int([math.sqrt(i) for math in [__import__('math')]][0])+1)]])]
"""
[2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109,
113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199, 211, 223, 227, 229, 233, 239, 241,
251, 257, 263, 269, 271, 277, 281, 283, 293, 307, 311, 313, 317, 331, 337, 347, 349, 353, 359, 367, 373, 379, 383, 389,
397, 401, 409, 419, 421, 431, 433, 439, 443, 449, 457, 461, 463, 467, 479, 487, 491, 499, 503, 509, 521, 523, 541, 547,
557, 563, 569, 571, 577, 587, 593, 599, 601, 607, 613, 617, 619, 631, 641, 643, 647, 653, 659, 661, 673, 677, 683, 691,
701, 709, 719, 727, 733, 739, 743, 751, 757, 761, 769, 773, 787, 797, 809, 811, 821, 823, 827, 829, 839, 853, 857, 859,
863, 877, 881, 883, 887, 907, 911, 919, 929, 937, 941, 947, 953, 967, 971, 977, 983, 991, 997]
"""
Zum Beispiel: "Es gibt 40, 60, 30 Bälle mit 500 Yen, Bälle mit 100 Yen und Bälle mit 10 Yen. Wie viele Münzen sollten jeweils verwendet werden, um mit ihnen insgesamt 9000 Yen herzustellen?" Es kann verwendet werden, wenn es ein Problem wie gibt.
python
[ns
for ns in [dict()] if not(
ns.update({"A":40}) or
ns.update({"B":60}) or
ns.update({"C":30}) or
ns.update({"x":9000}) or
print([[a,b,c]
for a in range(A+1)
for b in range(B+1)
for c in range(C+1)
if 500*a+100*b+10*c==x]))]
#[[14, 19, 10], [14, 20, 0], [15, 14, 10], [15, 15, 0], [16, 9, 10], [16, 10, 0], [17, 4, 10], [17, 5, 0], [18, 0, 0]]
Der "wenn nicht" Teil in der zweiten Zeile kann "wenn" sein. Wie das if von [i für i im Bereich (10), wenn i% 2 == 0], ist es, wenn es wahr ist, ein Element der Liste und darf nicht falsch sein. Wenn Sie also die gesamte Liste drucken, [{'A' : 40, 'B': 60, 'C': 30, 'x': 9000}] oder [].
Nebenbei (oder besser gesagt als persönliches Memorandum) werde ich über die obige oder häufige Liste schreiben. In Python scheint der ~~ boolesche Wert von print () False ~~ zu sein (der Rückgabewert war None, wie unten gezeigt). Sie können dies beispielsweise tun.
python
if print(5)==True:
print("fxxk")
elif print(5)==None:
print("brain fxxk")
else:
print("brain")
#brain fxxk
Wenn in Python A wahr ist, ist "A oder B" offensichtlich wahr, sodass B nicht ausgewertet wird. (Gleiches gilt für "A und B", wenn A falsch ist)
python
[print(5) or print(3) and print(4)]
#5
#3
#4 wird nicht gedruckt
Ich werde es hinzufügen, wenn ich wieder etwas Neues machen kann. Die Listeneinschlussnotation scheint vollständig zu sein.
Recommended Posts