Python 模块
Python 模块
模块介绍到目前为止,我们在 Python 解释器中写的所有代码都在我们退出解释器的时候丢失了。但是当人们编写大型程序的时候他们会倾向于将代码分为多个不同的文件以便使用,调试以及拥有更好的可读性。在 Python 中我们使用模块来到达这些目的。模块是包括 Python 定义和声明的文件。文件名就是模块名加上 .py 后缀。
你可以由全局变量 name 得到模块的模块名(一个字符串)。
现在我们来看看模块是怎样工作的。创建一个 bars.py 文件。文件内容如下:
12345678910111213141516171819202122232425"""Bars Module============这是一个打印不同分割线的示例模块"""def starbar(num): """打印 * 分割线 :arg num: 线长 ""&q ...
Python 类
Python 类
定义类在写你的第一个类之前,你应该知道它的语法。我们以下面这种方式定义类:
1234class nameoftheclass(parent_class): statement1 statement2 statement3
在类的声明中你可以写任何 Python 语句,包括定义函数(在类中我们称为方法)。
12345>>> class MyClass(object):... """A simple example class"""... i = 12345... def f(self):... return 'hello world'
init 方法类的实例化使用函数符号。只要将类对象看作是一个返回新的类实例的无参数函数即可。例如(假设沿用前面的类):
1x = MyClass()
以上创建了一个新的类实例并将该对象赋给局部变量 x。
这个实例化操作创建一个空的对象。很多类都倾向于将对象创建为有初始 ...
Python3 挑战实验 -- 玩转函数
Python3 挑战实验 – 玩转函数
介绍我们之前通过3个课程学习了 Python 的函数,文件处理,以及异常。这次我们通过一个简单的挑战实验来测试一下我们对之前代码的掌握程度。
目标请在 /home/shiyanlou/Code写出一个 MinutesToHours.py 脚本文件,实现一个函数 Hours(),将用户输入的 分钟数 转化为 小时数和分钟数,并要求小时数尽量大。讲结果以 XX H, XX M 的形式打印出来。(注意打印格式中的空格)
要求用户能够通过命令行输入分钟数,程序需要打印出相应的小时数和分钟数如果用户输入的是一个负值,程序需要报错 ValueError需要进行 try…except 操作来控制异常。如果异常,在屏幕上打印打印出 ValueError: Input number cannot be negative 提示用户输入的值有误
举例:
提示语
import sys
raise语句
try…except 语句
知识点
异常
文件处理
if-else
来源实验楼团队
答案12345678910111213141516#!/usr/ ...
Python 异常
Python 异常
在程序执行过程中发生的任何错误都是异常。每个异常显示一些相关的错误信息,比如你在 Python3 中使用 Python2 独有的语法就会发生 SyntaxError:
不小心在行首多打了一个空格就会产生 IndentationError:
NameError当有人试图访问一个未定义的变量则会发生 NameError。
1234>>> print(kushal)Traceback (most recent call last): File "<stdin>", line 1, in <module>NameError: name 'kushal' is not defined
最后一行包含了错误的详细信息,其余行显示它是如何发生(或什么引起该异常)的详细信息
TypeErrorTypeError 也是一种经常出现的异常。当操作或函数应用于不适当类型的对象时引发,一个常见的例子是对整数和字符串做加法。
1234>>> print(1 + "kushal" ...
Python 文件处理
Python 文件处理
文件打开我们使用 open() 函数打开文件。它需要两个参数,第一个参数是文件路径或文件名,第二个是文件的打开模式。模式通常是下面这样的:
“r”,以只读模式打开,你只能读取文件但不能编辑/删除文件的任何内容
“w”,以写入模式打开,如果文件存在将会删除里面的所有内容,然后打开这个文件进行写入
“a”,以追加模式代开,写入到文件中的任何数据将自动添加到末尾
默认的模式为只读模式,也就是说如果你不提供任何模式,open() 函数将会以只读模式打开文件。我们将实验打开一个文件,不过要准备实验材料:
1$ wget http://labfile.oss.aliyuncs.com/courses/596/sample.txt
然后进入 Python3 打开这个文件。
123>>> fobj = open("sample.txt")>>> fobj<open file 'sample.txt', mode 'r' a ...
Python 函数
Python 函数
定义一个函数我们使用关键字 def 来定义一个函数。
123def functionname(params): statement1 statement2
让我们编写一个函数,它将接受两个整数作为输入,然后返回总和。
12>>> def sum(a, b):... return a + b
第二行有个 return 关键字,我们把 a + b 的值返回给调用者。
你必须像下面这样调用这个函数。
123>>> res = sum(234234, 34453546464)>>> res34453780698L
还记得我们上一个实验讲过的回文检查程序么,让我们编写一个函数来检查给出的字符串是否为回文,然后返回 True 或者 False。
123456789#!/usr/bin/env python3def palindrome(s): return s == s[::-1]if __name__ == ' ...
Python 挑战:字符串操作
Python 挑战:字符串操作
介绍我们之前通过4个课程学习了一些基本的 Python 3 知识。现在我们就来用一个挑战实验来巩固一下我们的实验效果。
目标在/home/shiyanlou/Code创建一个 名为 FindDigits.py 的Python 脚本,请读取一串字符串并且把其中所有的数字组成一个新的字符串,并且打印出来。我们提供的字符串可以通过在命令行中输入如下代码来获取。
1wget http://labfile.oss.aliyuncs.com/courses/790/String.txt
P.S 如果大家想要通过 open() 函数来获取 String.txt 中的字符串,请在 open() 函数中写下 String.txt 的绝对路径,如 file = open(‘/home/shiyanlou/Code/String.txt’),否则系统测试会通不过 :(
提示语使用循环来访问字符串中的单个字符
1isdigit()
记得把新的字符串打印出来,print()函数记得要加括号(这里是Python3 的主场!敲黑板)
...
Python 字符串
Python 字符串
可以通过几种不同的方式表示字符串。如单引号(’…’)或双引号(”…”)。下面的例子能帮助你更好的理解字符串。
1234567891011121314>>> s = "I am Chinese">>> s'I am Chinese'>>> s = 'I am Chinese'>>> s = "Here is a line \... split in two lines">>> s'Here is a line split in two lines'>>> s = "Here is a line \n split in two lines">>> s'Here is a line \n split in two lines'>>> print(s)Here is a ...
Python 数据结构
Python 数据结构
列表1234>>> a = [23, 45, 1, -3434, 43624356, 234]>>> a.append(45)>>> a[23, 45, 1, -3434, 43624356, 234, 45]
首先我们建立了一个列表 a。然后调用列表的方法 a.append(45) 添加元素 45 到列表末尾。你可以看到元素 45 已经添加到列表的末端了。有些时候我们需要将数据插入到列表的任何位置,这时我们可以使用列表的 insert() 方法。
123456>>> a.insert(0, 1) # 在列表索引 0 位置添加元素 1>>> a[1, 23, 45, 1, -3434, 43624356, 234, 45]>>> a.insert(0, 111) # 在列表索引 0 位置添加元素 111>>> a[111, 1, 23, 45, 1, -3434, 43624356, 234, 45]
列表方法 count(s) ...
Python 循环
Python 循环
while 循环while 语句的语法如下:
123while condition: statement1 statement2
想要多次执行的代码必须以正确的缩进放在 while 语句下面。在表达式 condition 为真的时候它们才会执行。同 if-else 一样,非零值为真。让我们写一个简单的代码,它按顺序打印 0 到 10 的数字:
12345678910111213141516>>> n = 0>>> while n < 11:... print(n)... n += 1...012345678910
在第一行我们使 n = 0,然后在 while 语句中把条件设置为 n < 11,这意味着在 while 语句下面缩进的所有行将会被执行,直到 n 的值大于等于11。在循环里我们只是打印 n 的值然后令它增一。
斐波那契(Fibonacci)数列让我们来试试打印斐波那契数列。这个数列前两项为 1,之后的每一个项都是前两项之和。所以这个数列看起来就像这样:1,1, ...