test function name_function...">
美文网首页
08 Store data

08 Store data

作者: 全宇宙最帅De男人 | 来源:发表于2018-01-30 11:24 被阅读0次

[TOC]

<span id="start">test function</span>

name_function.py

    def get_formatted_name(first,last):
        """Generate(生成) a neatly(整齐的) formatted full name."""
        full_name = first + ' ' + last
        return full_name.title()

names.py

    from name_function import get_formatted_name

    print("Enter 'q' at any time to qiut.")
    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 + '.')

1.Unit testing and test cases.
The module <unittest> in the Python standard library provide code testing tools.Unit test are used to verify that there is no problem with some aspect of the function.A test case is a set of unit tests,these unit tests together verify that the function behaves in all cases.
2.Pass the test
test_name_function.py

    import unittest 
    from name_function import get_formatted_name

    class NamesTestCase(unittest.TestCase): # This class must inherit class unittest.TestCase.
        """test name_function.py"""

        def test_first_last_name(self):
            """Can you handle a name like Janis Joplin correctly?"""
            formatted_name = get_formatted_name('janis','joplin')
            self.assertEqual(formatted_name,'Janis Joplin')  

    unittest.main()

assertEqual function
Explanation:

First we import the module 'unittest' and the function 'get_formatted_name' to test.We created a class named NamesTestCase,you can name it any way you want,but it's best to make it look relevant to the function you're testing.This class must inherit class unittest.TestCase.
<span id="jump">assert</span> function:it use to verify whether the results were in line with the expected results.

The output from running test_name_function.py:

    .  
    ------------------------------------------------
    Ran 1 test in 0.000s

    OK

The period in the first line indicates a test passed

Test class

1.all kinds of assert
we have a lot of assert function in python.

assertEqual(a,b)-----------------verify a == b
assertNotEqual(a,b)--------------verify a != b
assertTrue(x)--------------------verify x is True
assertFalse(x)-------------------verify x is False
assertIn(item,list)--------------verify item in list
assertNotIn(item,list)-----------verify item not in list

[to be continued]

jump to head

import json

numbers = [1,2,3,4,5]

filename = 'numbers.json'
with open(filename,'w') as f_obj:
    json.dump(numbers,f_obj)#stroe date to file
Let's first import module json,then create a list of numbers.
The file extension **.json** is usually used to indicate that the file stores data in JSON format.
import json

filename = 'numbers.json'
with open(filename) as f_obj:
    numbers = json.load(f_obj)# use json.load() to load the information stored in numbers.json.
print(numbers)

2.Sava and read user-generated data
Store username:
import json
username = input("What is your name? ")
filename = 'username.json'
with open(filename,'w') as f_obj:
    json.dump(username,f_obj)
    print("We'll remeber you wehn you come back, "+username+" !")
Read file data:
import json

filename = 'username.json'

with open(filename) as f_obj:
    username = json.load(f_obj)
    print("Welcome back, " + username + "!")
Now,we need to merge two programs into one program.When the program runtime,we will try to get the username from the file 'username.json'.So let's first write a 'try' code that tries to restore the username,If this file doesn't exist,we prompt the user for a username in the 'except' code block,and store in the file 'username,json'.
import json

# If the previously stored username is loaded
# Else prompt the user to enter the username an store it.
filename = 'username.json'
try:
    with open(filename) as f_obj:
        username = json.load(f_obj)
except:
    username = input("What is your name? ")
    with open(filename,'w') as f_obj:
        json.jump(username,f_obj)
        print("We'll remember you when you come back, "+ username + "!")
else:
    print("Welcome back, "+username+"!")
3.reconstruction(重构)
You often encounter situations where the code works correctly and can be further improved---Divide the code into a series of functions that do the work.This process is called reconstruction.
import json

def greet_user():
    """greet the user and indicate their name"""
    filename = 'username.json'
    try:
        with open(filename) as f_obj:
            username = json.load(f_obj)
    except FileNotFoundError:
        username = input("What is your name? ")
        with open(filename,'w') as f_obj:
            json.dump(username,f_obj)
            print("We'll remember you when you come back, "+username+"!")
    else:
        print("Welcome back, "+username+"!")
greet_user()
reconstruction:
improt json

def get_stored_username():
    """if stored the username,load it"""
    try:
        filename = 'username.json'
        with open(filename) as f_obj:
            username = json.load(f_obj)
    except FileNotFoundError:
        return None
    else:
        return username

def get_new_username():
    """prompt the user enters the username"""
    username = input("What is your name? ")
    filename = 'username.json'
    with open(filename,'w') as f_obj:
        json.dump(username,f_obj)
    return username

def greet_user():
    """greet the user and divide their names"""
    username = get_stored_username()
    if username:
        print("Welcome back, "+username+"!")
    else:
        username = get_new_username()
        print("We'll remember you when you come back, "+username+"!")

greet_user()

相关文章

网友评论

      本文标题:08 Store data

      本文链接:https://www.haomeiwen.com/subject/wonqzxtx.html