Python测试和进阶学习建议
为了保证软件的可靠性和安全性,我们可以为函数或类编写测试代码,这样不仅仅可以简化我们手动测试的工作,也帮助我们未来对软件的维护和再开发更加方便。 比如我们创建一个函数,将用户的姓和名作为输入,然后返回一个格式化之后的全名: # name_function.py def get_formatted_name(first, last): full_name = f"{first} {last}" return full_name.title() 若要测试函数的正确性,我们在names.py中创建一个程序不断地提示用户输入名字,并打印出格式化之后的全名,然后我们可以自己来判断输出的正确性: # names.py from name_function import get_formatted_name print("Enter 'q' at any…
文件读写
文件读写 文件处理是很常见的IO操作。通常我们使用 input 从控制台读取输入,然后将用户输入的内容输出到控制台。使用文件操作,我们就可以将用户的输入写入文件,或者将不同数据源中的数据移植到文件中。Python为创建文件、读取文件、更新文件、和删除文件都提供了相对应的函数。 操作文件最核心的函数是open()函数,此函数需要两个参数:filename, mode。filename对应你要操作的文件名,mode对应你要对文件进行的操作,以下是不同mode对应的具体意义: “r”读模式默认操作。打开文件, 并读取其内容, 如果文件不存在就会返回错误。“a”追加模式添加内容,如果文件不存在,会自动创建其文件。“w”写模式打开文件,并写入内容,如果文件不存在,就会自动创建。“x”创模式创建特定的文件,如果文件已存在,就会返回错误。 此外,你还可以定义是要以什么形式来处理文件: “t”文本文本模式 (默认)“b”二进制二进制模式(比如图片) 打开文件 假设我们创建了文件file.txt,此文件和Python文件位于相同的文件夹: Hello! Welcome to file.txt This file is for testing purposes.…
面对对象编程
Python是也是一个面对对象编程(Object-Oriented Programming)的语言,面对对象编程是一种设计思想,意味着我们把对象作为程序的基本单元,而每个对象包含了自己的属性和方法。面向对象编程主要有以下特点: 封装(Encapsulation):对外部世界隐藏对象的工作细节。 继承(Inheritance):继承使子类具有父类的各种属性和方法,而不需要编写相同的代码。 多态(Polymorphism):为不同的数据类型的实体提供统一的接口。 使用OOP有以下的优点: 提高软件开发的生产效率 使软件的可维护性更好 提高软件的质量 在 Python 中,元组、列表和字典等数据类型是对象,函数也是对象。那么,我们能创建自己的对象吗?Of Course!跟其他 OOP 语言类似,我们使用类(class)来自定义对象。 类和实例(Class, Instance) 每个类都有自己的属性(attribute)和方法(method),比如一个人的身高、体重和年龄,这些都是属性,而吃饭、说话和洗澡都是方法。(要注意:在class外部定语的可执行函数叫做function,类内部的函数叫做方法method) 类的定义以class为开头,类名的首字母推荐要大写,冒号之后换行缩进紧跟着属性和方法的定义,属性无非就是一个变量的定义,而方法的定义和函数的定义是一样的,也是以def开头。请看下面的例子: # class class Person: #…
函数和参数(Function)
软件工程中有个DRY (Don’t Repeat Yourself)原则,就是说我们的代码需要具备可复用性,意味着如果我们想要重复使用一段代码,不能用土方法到处复制粘贴。Function功能将一堆代码抽象成一个函数,只有调用函数的时候,代码才会运行。函数的编辑使代码可以被一次编辑,多次调用。以下是Python中函数的定义语法: def function_name(parameters):expressionsPython使用def(define)开始函数定义,紧接着是函数名,括号内部为函数的参数,冒号之后缩进的部分是函数内的代码块,如果想要函数有返回值,在expressions中的代码中用return返回。 Defining a function def myFunction():a = 1 + 2print(f"sum is {a}") myFunction() # Calling a function上面我们定义了一个名为myFunction的函数,函数没有接受参数,所以括号为空,紧接着的是函数的功能代码。前4行只是定义了函数,并没有执行函数。之后我们输入myFunction()调用函数,注意这里调用函数的括号不能省略。调用函数后输出结果是 sum is…
条件判断和循环
条件判断 if 条件判断 计算机之所以能做很多自动化的任务,是因为它自己可以做条件判断。比如,根据用户的分数,打印出不同的奖励值。在Java中可以使用 if 语句实现条件判断: int score = 70; int reward; if(score >= 60) { reward = score * 2; } else {…
Python中基本的数据结构
序列是Python中基本的数据结构。序列中的每个元素都分配一个数字,来代表他的位置,或索引,第一索引从0开始,第二个索引是1,以此类推。序列都可以进行的操作包括索引,切片,加,乘,检查等函数。此外,Python也内置确定序列长度以及确定最大和最小的元素方法。以下就为大家介绍最重要的四种序列数据类型:List, Tuple, Dictionary, Set。 列表 List 列表是一种可修改的集合类型,其元素可以是数字、字符串等基本类型,也可以是列表、元组、字典等集合类型,甚至可以是自定义的类型。 创建一个列表,只要用逗号分隔的不同的数据,然后使用方括号括起来即可: letters = ['a', 'b', 'c', 'd', 'e', 'f', 'g'] list = list(('a', 'b', 'c')) print(len(letters)) 列表元素的读取和更新:…
变量和基本数据类型(Bool, Number, String)
计算机程序需要能够处理各种数据,不管是数值、文本、图形、音频、视频、网页等等各种不同的数据类型。编程语言也都具备创建和操作数据的功能。Python中有7个标准的数据类型:Bool(布尔)、Number(数字)、String(字符串)、Tuple(元组)、List(列表)、Set(集合)、Dictionary(字典)。 变量 Variable 每当我们创建一组数值的时候,计算机会为它分配一些指定的内存空间。而要寻找到内存地址,我们则需要一个导游,变量就是这么一个能帮助我们找到数值地址的导游。如果把计算机内存空间想象成是一个仓库,我们可以把变量理解是一组数值的标签,标签上记录着数据的具体货柜编号,通过标签上的指示,我们就能找到数据了。 在下面的代码中,我们用message变量指向了字符串“Hello!”,然后使用print函数打印出message,就会输出结果“Hello!”: message = "Hello!" print(message) Python提供了很简便的语法特性,可以让我们在一行内同时为多个变量赋值: str1, str2, str3 = "A", "B", "C" print(str1 + str2 + str3) # ABC…
Hello world!
Welcome to WordPress. This is your first post. Edit or delete it, then start writing!