Jeder, der Python kennt, weiß, dass der Einstieg in Python zwar einfach ist, aber viel Wissen erfordert und sehr geschickt ist! Diese Fähigkeiten sind wie Ketten. Es erfordert etwas Übung, um die Wissenspunkte sicher zu beherrschen! Heute hat der Herausgeber 3 interessante Python-Fragen für Sie ausgewählt. Lassen Sie uns Ihre Finger bewegen und gemeinsam üben!
Der folgende Editor zeigt Ihnen, wie Anfänger bzw. Experten mit dem Problem umgehen:
NR.1 Zeichenersetzung in Strings
Strings sind der grundlegendste und wichtigste Wissenspunkt in Python. Die folgende Frage bezieht sich auf das Ersetzen von Strings.
Erstellen Sie eine Funktion, die die Eingabezeichenfolge verarbeiten und eine Zeichenfolge mit bestimmten ersetzten Zeichen zurückgeben kann. Die Regeln lauten wie folgt:
· Wenn ein Buchstabe ein Konsonant in Großbuchstaben ist, ersetzen Sie dieses Zeichen bitte durch „. Eisen".
· Wenn es sich bei einem Buchstaben um einen Konsonanten in Kleinbuchstaben oder ein nicht alphabetisches Zeichen handelt, machen Sie nichts mit dem Zeichen.
· Wenn es sich bei einem Buchstaben um einen Vokal in Großbuchstaben handelt, ersetzen Sie das Zeichen durch „Iron Yard“. ".
· Wenn es sich bei einem Buchstaben um einen Kleinvokal handelt, ersetzen Sie das Zeichen durch „Yard“.
Testfall
Eingabe: „Hallo WELT!“
Ausgabe: „IronYardllYard IronIron YardIronIronIron!“
Rookie-Lösung:
def replace_str(string): res = "" vowel = 'aeiou' for i in string: if i in vowel: res += 'Yard' elif i in vowel.upper(): res += 'Iron Yard' elif i.isupper(): res +='Iron' else: res += i return res print(replace_str('Hello WORLD!'))
Master-Lösung:
def tiy_fizz_buzz(s): return "".join(("Iron "*c.isupper() + "Yard"*(c.lower() in "aeiou")).strip() or c for c in s)
Kommentare:
Die cleverste Lösung für Master besteht nicht darin, eine Methode wie Pushing to a List zu verwenden, um Strings zu durchlaufen, sondern auch „Iron“*True zu verwenden oder „ Eisen“*Falsch, wenn Ersteres die Zeichenfolge selbst ist und Letzteres leer ist. Verwenden Sie dann +, um die beiden Zeichenfolgen zu kombinieren, und verwenden Sie dann oder zum Klassifizieren! Es integriert das obige if-elif-elif-else perfekt in eine Codezeile, was wirklich gut ist!
Nr. 2 Interessantes Gewichtsranking
Xiaoli ist in einem „Abnehmclub“. besorgt, weil jeden Tag eine Liste mit den Gewichten der Mitglieder veröffentlicht wird und sie jeden Monat die letzte auf der Liste ist, was bedeutet, dass sie die schwerste ist. Sie schlug daher vor, dass der Präsident die Regeln ändert. Die neuen Regeln lauten wie folgt:
Die neue Sortierregel wird nach „Gewicht“ sortiert sortiert nach der Gewichtszeichenfolge. (Berechnungsregel für das Gewicht: die Summe der Zahlen in verschiedenen Ziffern der Gewichtszahl)
Wie sortiert man die Gewichtszeichenfolgen der Mitglieder eines bestimmten Vereins mit normaler Ordnung gemäß den neuen Regeln? Testfall: Eingabe: „99 189 86 75“ Ausgabe: „75 86 189 99“
Rookie-Lösung:
def order_weight(string): weight_list = string.split(' ') def helper(x): if not x: return x y = int(x) z = 0 while y: z += y % 10 Y = int(y / 10) return (z,x) weight_list.sort.sort(key = helper) return " ".join(weight_list)
Master-Lösung:
def order_weight(_str): return' '.join(sortsd(_str.split(' '),key = lambda x: sum(int(c) for c in x)))
Kommentare:
Die Lösung des Experten ist auch relativ einfach! Die meisten von uns verwenden for c in x und beenden es auf dieser Ebene. Tatsächlich können wir auch weitere Operationen an c durchführen und dann Schlussfolgerungen ziehen. Viele fortgeschrittene Verwendungsmöglichkeiten von „sorted“ sind auf einmal zusammengefasst, prägnant und effektiv!
3. Würfelspiel
Ein Würfelspiel, das mit fünf sechsseitigen Würfeln gespielt wird. Bei jedem Würfeln erscheint eine Reihe von 5 Zahlen (Zahlen: 1-6). Zählen Sie, wie oft jede Zahl im Array erscheint, teilen Sie die Häufigkeit, mit der jede Zahl erscheint, in eine Kombination aus 3 Mal und 1 Mal auf und zählen Sie dann gemäß den folgenden Regeln. Hinweis: Wenn die Anzahl der Vorkommen größer oder gleich 3 Mal ist, muss mindestens eines davon als 3 Mal berechnet werden, und nicht alle davon können als 1 Mal berechnet werden
3 mal 1 = = 1000 Punkte 3 mal 6 = = 600 Punkte
3 mal 5 = = 500 Punkte 3 mal 4 = = 400 Punkte
3 mal 3 = = 300 Punkte 3 mal 2 = = 200 Punkte
1 Mal 1 => 100 Punkte 1 Mal 5 => 50 Punkte
1 Mal 2 => 0 Punkte 1 Mal 3 => 0 Punkte
1 Zeit 4 => 0 Punkte 1 Zeit 6 => 0 Punkte
Wenn beispielsweise 5 5 Mal vorkommt, dann sollte es als 3 5s berechnet werden, 1 5 und 1 5; wenn 5 6 Mal vorkommt 3 sollte berechnet werden. Zur Berechnung der Punktzahl werden A 5 oder 3 5er verwendet, und das Gleiche gilt für andere Zahlen.
Testfall:
Würfeln und die Punktzahl berechnen
5 1 3 4 1 50 + 2 * 100 = 250
1 1 1 3 1 1000 + 100 = 1100
2 4 4 5 4 400 + 50 = 450
Rookie-Lösung:
from collections import Counter def score(dice): num_dict = dict(Counter(dice)) res = 0 for i in num_dict: if i == 1: res +=1000 * (int(num_dict[i] / 3)) + 100 * (num_dict[i] % 3) elif i == 5: res +=500 * (int(num_dict[i])) + 50 * (num_dict[i] % 3) else: res += 100 * (i * int(num_dict[i] / 3)) return res
Master-Lösung:
def score(dice): sum = 0 counter = [0,0,0,0,0,0] points = [1000, 200, 300, 400, 500, 600] extra = [100,0,0,0,50,0] for die in dice: counter[die-1] += 1 for (i, count) in enumerate(counter): sum += (points[i] if count >= 3 else 0) + extra[i] * (count%3) return sum
Kommentare:
Die Lösung des Meisters besteht darin, eine sehr clevere Datenstruktur zu entwerfen. Er hat im Voraus mehrere Container entsprechend der Bedeutung der Frage entworfen und dann die Anzahl der Vorkommen von (1-) in der Zählerliste geschickt kombiniert. 6) und (1-6). Die Punkte- und Extralisten verknüpfen geschickt die Häufigkeit des Erscheinens einer Zahl (3 Mal und 1 Mal) mit der Punktzahl, wodurch die Wahrscheinlichkeit einer versehentlichen Eingabe von Punktzahlen verringert und die Wiederverwendung des Codes verbessert wird. Die gesamte Lösung ist sehr clever!
Die oben genannten Fragen scheinen sehr einfach und leicht verständlich zu sein, aber die Lösungen sind nicht so prägnant und genial wie andere! Genau wie bei einem Kochwettbewerb ist ein scheinbar einfacher gebratener Eierreis in Wirklichkeit ein Test Ihrer Fähigkeiten! Das Programmieren selbst beinhaltet die Verschmelzung von Algorithmen und Datenstrukturen. Wenn Sie Zeit haben, können Sie mehr über hervorragende Codes erfahren, was für Ihr eigenes Lernen und Ihre Verbesserung von großem Nutzen sein wird!
[Empfohlener Kurs: Python-Spalten-Video-Tutorial]
Das obige ist der detaillierte Inhalt von3 interessante Python-Fragen, die sich sehr gut für Anfänger zum Üben eignen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!