Heim  >  Artikel  >  Backend-Entwicklung  >  Zusammenfassung der Python-Grundlagen

Zusammenfassung der Python-Grundlagen

巴扎黑
巴扎黑Original
2017-07-17 15:56:281740Durchsuche

Testcode

Beim Schreiben von Funktionen und Klassen können Sie auch Testfunktionen schreiben. Durch Tests können Sie sicherstellen, dass der Code für verschiedene Eingaben normal funktioniert. Wenn Sie Ihrem Programm neuen Code hinzufügen, können Sie ihn auch testen, um sicherzustellen, dass er die vorhandenen Routinen des Programms nicht beeinträchtigt. Testen Sie Module regelmäßig.

Testen Sie den Code mit den Tools im Python-Modul Unittest. Sie werden verstehen, wie es aussieht, einen Test zu bestehen, und wie es aussieht, wenn er nicht besteht. Sie wissen, wie Sie den Code verbessern können, wenn Sie wissen, dass der Test fehlschlägt, und Sie wissen, wie viele Tests Sie für das Projekt schreiben müssen. Wissen, wie man Funktionen und Klassen testet.

Während der Ausführung des Programms werden immer wieder verschiedene Fehler auftreten. Einige Fehler werden durch Probleme beim Programmschreiben verursacht. Beispielsweise sollte eine Zeichenfolge anstelle einer Ganzzahl ausgegeben werden. Diese Art von Fehler wird normalerweise als Fehler bezeichnet und muss behoben werden.

Testfunktion

Unit-Test und Testfall

Das Unittest-Modul in Python stellt Codetest-Tools bereit. Unit-Test wird verwendet, um bestimmte Aspekte von zu überprüfen die Funktion. Kein Problem. Testfall ist eine Reihe von Komponententests, um sicherzustellen, dass die Funktion in allen Aspekten keine Probleme aufweist.

Testfälle mit vollständiger Abdeckung umfassen einen vollständigen Satz von Testfällen, die verschiedene mögliche Verwendungsmöglichkeiten von Funktionen abdecken.

Kann den Test bestehen

Um eine Testfunktion für eine Funktion zu schreiben, importieren Sie zuerst das Modul Unittest und die zu testende Funktion, erstellen Sie dann eine Klasse, die unittest.TestCase erbt, und schreiben Sie eine Reihe von Methoden für die Funktion Verschiedene Aspekte des Verhaltens werden getestet. Benennen Sie es am besten mit test.

name_function.py

def get_formatted_name(first, last):   

"""获得全名."""   

full_name = first + ' ' + last   

return full_name.title()

def get_formatted_name(first, last):

"""Den vollständigen Namen abrufen."""

full_name = first + ' ' + last

from name_function import get_formatted_name

print("Enter 'q' at any time to quit.")

while True:   

first = input("nPlease give me a first name: ")   

if first == 'q':       

break   

last = input("Please give me a last name: ")   

if last == 'q':       

break   

formatted_name = get_formatted_name(first, last)   

print("tNeatly formatted name: " + formatted_name + '.')

return full_name . title()

names.py

import unittest 

from name_function import get_formatted_name

class NamesTestCase(unittest.TestCase):     

"""测试name_function.py"""     

def test_first_last_name(self):         

"""能够正确地处理像Janis Joplin这样的姓名吗?"""          

formatted_name = get_formatted_name('janis', 'joplin')          self.assertEqual(formatted_name, 'Janis Joplin') 

unittest.main()

from name_function import get_formatted_name

print("Zum Beenden können Sie jederzeit 'q' eingeben.")

while True:

first = input("nBitte gib mir einen Vornamen:")

if first == 'q':

方法

用途

assertEqual(a, b)

核实a == b

assertNotEqual(a, b)

核实 a != b

assertTrue(x)

核实 x 为True

assertFalse(x)

核实 x 为False

assertIn(item, list)

核实 item在list中

assertNotIn(item, list)

核实 item不在list中

break last = input("Bitte geben Sie mir einen Nachnamen:") if last == 'q': break formatted_name = get_formatted_name(first , last) print("tOrdentlich formatierter Name: " + formatted_name + '.')
test_name_function .py
unittest importieren from name_function import get_formatted_nameclass NamesTestCase(unittest.TestCase): """Test name_function.py""" def test_first_last_name(self): 🎜>" „Können Sie mit einem Namen wie Janis Joplin richtig umgehen?“ ""                                                                                          
Eine der nützlichsten Funktionen von Unittest: Eine Assertionsmethode. Die Assertionsmethode „assuranceEqual“ wird verwendet, um zu überprüfen, ob das erhaltene Ergebnis mit dem erwarteten Wert übereinstimmt. Tests nicht bestanden Wenn der Test fehlschlägt, ändern Sie den Test nicht. Korrigieren Sie stattdessen den Code, der zum Fehlschlagen des Tests geführt hat: Überprüfen Sie die Änderungen, die Sie gerade an der Funktion vorgenommen haben Finden Sie die Änderungen, die dazu geführt haben, dass sich die Funktion unerwartet verhält. Verschiedene Behauptungsmethoden im Modul6 allgemeine Behauptungen

Methode

Zweck

assertEqual(a, b ) Überprüfen Sie a == b
assertNotEqual(a , b) Überprüfen Sie a != b
assertTrue(x) Überprüfen Sie, ob x wahr ist
assertFalse(x) Überprüfen Sie, dass x falsch ist
assertIn(item, list ) Überprüfen Sie, ob das Element in der Liste ist
assertNotIn(item , list) Stellen Sie sicher, dass das Element nicht in der Liste enthalten ist

Methode setUp()

Die Unittest.TestCase-Klasse enthält die Methode setUp(), die es uns ermöglicht, Objekte nur einmal zu erstellen und sie in jeder Testmethode zu verwenden.

Survey.py

class AnonymousSurvey():     

"""收集匿名调查问卷的答案"""

        def __init__(self, question):        

        """存储一个问题,并为存储答案做准备"""        

            self.question = question         

self.responses = []

        def show_question(self):         

"""显示调查问卷"""        

            print(question)    

def store_response(self, new_response):        

        """存储单份调查答卷"""         

self.responses.append(new_response)  

def show_results(self):        

        """显示收集到的所有答卷"""        

            print("Survey results:")         

for response in responses:          

            print('- ' + response)

Klasse AnonymousSurvey():                                                                                Eine Frage und bereiten Sie sich darauf vor, die Antwort zu speichern.                                                                                                         >

""Fragebogen anzeigen""                                                                                                                            "" self.responses.append(new_response)

from survey import AnonymousSurvey

#定义一个问题,并创建一个表示调查的AnonymousSurvey对象

question = "What language did you first learn to speak?"

my_survey = AnonymousSurvey(question)

#显示问题并存储答案 my_survey.show_question()

print("Enter 'q' at any time to quit.n")

while True:   

response = input("Language: ")   

if response == 'q':       

break   

my_survey.store_response(response)

 # 显示调查结果

print("nThank you to everyone who participated in the survey!")

my_survey.show_results()

def show_results(self):  „“Alle gesammelten Antworten anzeigen““                                                                                                                                       >
 Language_survey.py
aus Umfrageimport AnonymousSurvey#Definieren Sie a Frage und erstelle ein AnonymousSurvey-Objekt, das die Umfrage darstelltquestion = „Welche Sprache hast du zum ersten Mal sprechen gelernt?“ my_survey = AnonymousSurvey(question)#Show questions and Antworten speichern my_survey.show_question()print("Zum Beenden jederzeit 'q' eingeben")while True: response = input("Language : ") if Response == 'q': break my_survey .store_response(response) # Umfrageergebnisse anzeigenprint("nVielen Dank an alle, die an der Umfrage teilgenommen haben!")my_survey.show_results()

test_survey.py

import unittest 

from survey import AnonymousSurvey 

class TestAnonymousSurvey(unittest.TestCase):     

"""针对AnonymousSurvey类的测试"""     

def setUp(self):         

"""创建一个调查对象和一组答案,供使用的测试方法使用"""         

question = "What language did you first learn to speak?"        

self.my_survey = AnonymousSurvey(question)          

self.responses = ['English', 'Spanish', 'Mandarin']     

def test_store_single_response(self):         

"""测试单个答案会被妥善地存储"""          self.my_survey.store_response(self.responses[0])         

self.assertIn(self.responses[0], self.my_survey.responses)     

def test_store_three_responses(self):          

"""测试三个答案会被妥善地存储"""         

for response in self.responses:             

self.my_survey.store_response(response)         

for response in self.responses:             

self.assertIn(response, self.my_survey.responses) 

unittest.main()

import unittest

aus der Umfrage import AnonymousSurvey class TestAnonymousSurvey(unittest.TestCase):

"""Test for AnonymousSurvey class"""

def setUp (Selbst): "

self.my_survey = anonymousSurvey (Frage)


self.responses = ['englisch', 'spanisch', 'mandarin']

Def Test_store_Single_Response (self):

"""Einzelne Testantworten werden ordnungsgemäß gespeichert""" self.my_survey.store_response(self.responses[0])

self.assertIn(self.responses[ 0], self.my_survey.responses)                                                                                     Antworten: 

self.my_survey.store_response(response) 

für die Antwort in self.responses: 

self.assertIn(response, self.my_survey.res ponses) unittest.main()

Methode setUp()

führt zwei Dinge aus: Ein Umfrageteilnehmer erstellt eine Liste mit Antworten.

Die Variablennamen, die diese beiden Dinge speichern, enthalten das Präfix self (d. h. in Attributen gespeichert), sodass sie überall in dieser Klasse verwendet werden können. Dadurch werden beide Testmethoden einfacher, da weder Umfrageteilnehmer noch Antworten erstellt werden.

Verwenden Sie int(), um Zahlen einzugeben

Da der von input() zurückgegebene Datentyp str (String) ist, konvertiert Python die direkt eingegebene Zahl in einen String. str kann nicht direkt mit einer Ganzzahl verglichen werden, str muss zuerst in eine Ganzzahl konvertiert werden. Python stellt die Funktion int() bereit, um dies zu erreichen

height = input("Wie groß sind Sie in Zoll? ")

height = int( Höhe) #in Ganzzahl konvertieren


Modulo-Operator Bei der Verarbeitung numerischer Werte Informationen: Der Modulo-Operator (%) ist ein sehr nützliches Werkzeug. Er dividiert zwei Zahlen und gibt den Rest zurück: >>> > >>> 5 % 32>>> 6 % 30 >>> ; 7 % 3 1Wenn eine Zahl durch eine andere Zahl teilbar ist, ist der Rest 0, sodass der Modulo-Operator 0 zurückgibt. Damit können Sie feststellen, ob eine Zahl ungerade oder gerade ist.

Das obige ist der detaillierte Inhalt vonZusammenfassung der Python-Grundlagen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn