Python基础知识-2

#第一部分 文件操作
#一次性读取文本文件内容 with 关键字会自动调用 close()函数关闭文件
with open("text_files\pi_digits.txt") as file_object:
    contents = file_object.read()
    # print(contents)
    print(contents.rstrip())

print("++++++++++++++++++++++++++++++++++++++++++++++++++++")

#逐行读取
with open("text_files\pi_digits.txt") as file_object:
    for line in file_object:
        print(line)

print("++++++++++++++++++++++++++++++++++++++++++++++++++++")

#readlines()从文件中读取每一行,并将其存储在一个列表中;
pi_string = ""
with open("text_files\pi_digits.txt") as file_object:
    lines = file_object.readlines()

for line in lines:
    pi_string += line.strip()

print("pi_string:",pi_string)

#判断一个字符串是否在另一个字符串,用IN 就可以了

#写入文件 open函数 有两个实参,第一个是要打开文件的名称;第二个是读写模式 r 读取模式  w 写入模式 a 附加模式 r+ 读取和写入

filename = "text_files\programming.txt"
with open(filename,"w") as file_object:
    file_object.write("I love programming.\n")
    file_object.write("I love creating new games.\n")

#第二部分 异常 try-except
# 1 ZeroDivisionError异常
first_number = 5
second_number = 0
try:
    answer = (first_number/second_number)
except ZeroDivisionError:
    print("You can't divide by zero!")
else:
    #如果try代码块成功执行,则执行else代码块
    print(answer)

# 2 FileNotFoundError异常
filename = 'alice.txt'
try:
    with open(filename) as file_object:
        contents = file_object.read()
except FileNotFoundError:
    print('Sorry,the file does not exits')

# 分析文本 统计单词
filename = "alicce.txt"
try:
    with open(filename) as f_obj:
        contents = f_obj.read()
except FileNotFoundError:
    # print('Sorry,the file does not exits')
    pass
else:
    #计算文件大致包含多少个单词
    worlds = contents.split()
    number_words = len(worlds)
    print("The file"+filename+"has about"+str(number_words)+"words.")

#第三部分 模块 JSON
# 导入json ,json.dump()写入文件,两个参数 要存储的数据和可用于存储数据的文件对象
# json.load() 将文件内容读取到内存
import json
#如果以前存储了用户名,就加载它
#否则,就提示用户输入用户名并存储它
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+"!")

#第四部分 单元测试 unittest
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')

    def test_first_middle_last_name(self):
        """能够正确地处理像Wolfgang Amadeus Mozart这样的姓名吗?"""
        formatted_name = get_formatted_name(first='wolfgang',middle='amadeus',last='mozart')
        self.assertEqual(formatted_name,'Wolfgang Amadeus Mozart')


# 运行单元测试
if __name__ == '__main__':
    unittest.main()

# 最后对使用unittest模块的一些总结:
#
# 编写单元测试时,需要编写一个测试类,从unittest.TestCase继承
# 对每一个类测试都需要编写一个test_xxx()方法
# 最常用的断言就是assertEqual()
# 另一种重要的断言就是期待抛出指定类型的Error,eg:with self.assertRaises(KeyError):
# 另一种方法是在命令行通过参数-m unittest直接运行单元测试:eg:python -m unittest student_test
# 最简单的运行方式是xx.py的最后加上两行代码:
# if __name__ == '__main__':
#     unittest.main()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值