python慕课版电子版教材,python慕课版课后题答案

大家好,小编为大家解答python慕课版董付国课后题答案的问题。很多人还不知道python慕课版课后题答案郭炜,现在让我们一起来看看吧!

MOOC《Python语言程序设计》(第15次)-- 总结版

一、Python的简介

  • python的创始人:Guido van Rossum 荷兰人,“龟叔”
  • pyhton发行于1991年
1.1 Python的优缺点
  • **简单、易学:**Python是一种代表简单主义思想的语言,一个良好的Python程序就感觉像是在读英语一样。
  • **免费、开源:**Python是FLOSS(自由/开放源码软件)之一,你可以自由地发布这个软件的拷贝、阅读它的源代码、对它做改动、把它的一部分用于新的自由软件中python练手怎么接单
  • **高层语言:**无需考虑诸如如何管理程序使用的内存一类的底层细节。
  • **解释型语言:**Python语言写的程序不需要编译成二进制代码,可以直接从源代码运行程序。
  • **面向对象;**Python既支持面向过程的编程也支持面向对象的编程。在“面向对象”的语言中,程序是由数据和功能组合而成的对象构建起来的。
  • **可移植:**Python可以在不同的平台上工作
  • **可扩展:**如果你需要你的一段关键代码运行得更快或者希望某些算法不公开,你可以把你的部分程序用C或C++编写,然后在你的Python程序中使用它们
  • **丰富的库:**除了标准库以外,还有许多其他高质量的第三方库
  • **规范的代码:**Python采用强制缩进的方式使得代码具有极佳的可读性
  • 缺点:运行速度慢,和C程序相比非常慢;代码不能加密,如果要发布你的Python程序,实际上就是发布源代码。
1.2 python的应用领域

数据分析、数据可视化、机器学习、深度学习、网络爬虫、网站开发、用户界面开发、游戏开发、虚拟现实(VR)等

1.3 Python的中文编码

Python中默认的编码格式是 ASCII 格式,在没修改编码格式时无法正确打印汉字,所以在读取中文时会报错。

解决方法为只要在文件开头加入 # -*- coding: UTF-8 -*- 或者 # coding=utf-8 就行了

#!/usr/bin/python
# -*- coding: UTF-8 -*-

print("你好,世界")

二、Python的数据类型

  • 不可变数据(3 个):Number(数字)、String(字符串)、Tuple(元组);
  • 可变数据(3 个):List(列表)、Dictionary(字典)、Set(集合)。
2.1 数字类型(Number)
  • int(整型)
  • long(长整型),python3中没有
  • float(浮点型)
  • complex(复数),用 a+bj 或 complex(a,b) 表示,a,b为浮点型
int(x)				  # 将x转换为一个整数
long(x)           	  # 将x转换为一个长整数
float(x)          	  # 将x转换到一个浮点数  
complex(real, imag)   # 创建一个复数

str(x)          	  # 将对象 x 转换为字符串
repr(x)           	  # 将对象 x 转换为表达式字符串
eval(str)			  # 去除Python表达式两边引号,并返回一个对象
tuple(s)          	  # 将序列 s 转换为一个元组
list(s)          	  # 将序列 s 转换为一个列表
chr(x)           	  # 将一个整数转换为一个字符
unichr(x)        	  # 将一个整数转换为Unicode字符
ord(x)          	  # 将一个字符转换为它的整数值
hex(x)          	  # 将一个整数转换为一个十六进制字符串
oct(x)           	  # 将一个整数转换为一个八进制字符串

import math        	  # 数学运算函数库
import random		  # 随机数函数库
函数描述
abs(x)绝对值
abs(-10.01) = 10.01
divmod(x,y)商余,(x//y,x%y),同时输出商和余数
divmod(10,3) = (3,1)
pow(x,y[,z])幂余,(x**y)%z,[…]表示参数z可忽略
pow(3,pow(3,99),1000) = 4587

详见 Python Number(数字)| 菜鸟教程

2.2 字符串(string)

字符串由一对单引号或双引号表示

索引:返回字符串中单个字符 <字符串>[M]

切片:返回字符串中一段字符子串 <字符串>[M:N:K]

转义符: \

  • “\b”:回退

  • “\n”:换行(光标移动至下行首)

  • “\r”:回车(光标移动至本行首),用于单行刷新

sentence = 'abcdacba , ABCD , 学习,是一种信仰'

sentence.lower()  # 小写,'abcdacba , abcd , 学习,是一种信仰'
sentence.upper()  # 大写,'ABCDACBA , ABCD , 学习,是一种信仰'

sentence.split(',')       # 分割,['abcdacba ', ' ABCD ', ' 学习', '是一种信仰']
sentence.count('a')       # 统计,3
sentence.replace(' ','')  # 替换,'abcdacba,ABCD,学习,是一种信仰'
# 用空替换空格,即实现删除空格

'python'.center(10,'=')   # 填充,'==python=='
'=pytho=n='.strip('=')    # 删除两侧,'pytho=n'
','.join('study')         # 插入,'s,t,u,d,y'

详见 Python 字符串| 菜鸟教程

2.3 布尔型(Bool)

逻辑运算,只有两个值:Ture(真) 和 False(假) 。

2.4 列表(List)

List(列表) 是 Python 中使用最频繁的数据类型。

列表中元素的类型可以不相同,它支持数字,字符串,甚至还可以包含列表(嵌套

函数描述
ls[i] = x替换列表ls第i元素为x
ls[i: j: k] = lt用列表lt替换ls切片后对应元素字列表
del ls[i]删除列表ls中第i元素
del ls[i: j: k]删除列表ls中第i到第j以k为步长的元素
ls += lt更新列表ls,将列表lt元素增加到列表ls中
ls *= n更新列表ls,其元素重复n次
方法
ls.append(x)在列表ls最后增加一个元素x
ls.clear()删除列表ls中所有元素
ls.copy()生成一个新列表,赋值ls中所有元素
ls.insert(i,x)在列表ls的第i位置增加元素x
ls.pop(i)将列表ls中第i位置元素取出并删除该元素
ls.remove(x)将列表ls中出现的第一个元素x删除
ls.reverse()将列表ls中的元素反转

列表功能实现

lt = []          	# 定义空列表lt,[]
lt += [1,2,3,4,5] 	# 向lt新增5个元素,[1,2,3,4,5]
lt[2] = 6      		# 修改le中第2个元素,[1,2,6,4,5]
lt.insert(2,7)   	# 向lt中第2个位置增加一个元素,[1,2,7,6,4,5]
del lt[1]      	   	# 从lt中第一个位置删除一个元素,[1, 7, 6, 4, 5]
del lt[1:4]     	# 删除lt中第1-3位置元素(包含3),[1, 5]
print(0 in lt)     	# 判断lt中是否包含数字0,False
lt.append(0)       	# 向lt新增数字0,[1, 5, 0]
lt.index(0)     	# 返回数字0所在lt中的索引,2
len(lt)          	# lt的长度,3
max(lt)          	# lt中最大元素,5
lt.clear()        	# 清空lt,[]

详见 Python 列表(List)| 菜鸟教程

2.5 元组(Tuple)

Python的元组与列表类似,不同之处在于元组的元素不能修改

元组使用小括号,列表使用方括号。

tup1 = ()     	# 创建空元组
tup2 = (50,)  	# 元组中只有一个元素,需在元素后面添加逗号

详见 Python 元组 | 菜鸟教程

2.6 集合(Set)

​ 集合(set)是由一个或数个形态各异的大小整体组成的,构成集合的事物或对象称作元素或是成员

​ 基本功能是进行成员关系测试和删除重复元素

set1 = {'a','b'}  # 创建集合,方式一
set2 = set('a')   # 创建集合,方式二
set3 = set()      # 创建空集合,只能用set()

diy_set = {'a','a','a','b','b'}  # 创建集合,
print(diy_set)  # 打印,重复的元素被自动去掉,{'a', 'b'}
2.7 字典(Dictionary)

字典是一种映射类型,字典用 { } 标识,它是一个无序的 键(key) : 值(value) 的集合。

tinydict = {'name': 'runoob','code':1, 'site': 'www.runoob.com'}
print(tinydict['name'])  # 访问字典元素,'runoob'

详见 Python 字典(Dictionary)| 菜鸟教程

三、Python的运算符

类型运算符
算数运算符+、-、*、/、%、、**、//
比较(关系运算符)== 、!= 、<> 、> 、< 、>= 、<=
赋值运算符= 、+= 、-= 、= 、/= 、%= 、**= 、//=
位运算符& 、|、^ 、~ 、<< 、>>
逻辑运算符and 、 or 、 not
成员运算符in 、 not in

四、Python的函数

# 自定义函数printinfo(),打印相关信息
def printinfo(name,country='China',*args):
    print("Name:{}\nConutry:{}".format(name,country))
    for var in args:
        print(var)
    return "信息打印完成"

printinfo('Student1','USA',['python',"isn't",'easy'],'I will study forever')

# Name:Student1
# Conutry:USA
# ['python', "isn't", 'easy']


# 匿名函数lambda
success = lambda arg1, arg2: print('{}*{}'.format(arg1,arg2))
success('happy',10)    		# happy*10
success('happy','today')  	# happy*today

五、Python的文件使用

文件的打开:

<变量名> = open( <文件名>, <打开模式> )

  • <变量名>:文件句柄;
  • <文件名>:路径和名称,分绝对路径和相对路径;
  • <打开模式>:文本或二进制;读或写。

文件的关闭:

<变量名>.close()

fo = open('China.txt', "r", encoding='utf-8')
# ...文件操作...
fo.close()

其他方法:

with open() as f

好处:python会自动关闭文件

with open('China.txt','r',encoding='utf-8') as f:
    txt = f.read()  # 文件的操作
文件的打开模式描述
‘r’只读模式,默认值,如果文件不存在,返回FileNotFoundError
'w ’覆盖写模式,文件不存在则创建,存在则完全覆盖
‘x’创建写模式,文件不存在则创建,存在则返回FileExistsError
‘a’追加写模式,文件不存在则创建,存在则在文件最后追加内容
‘b’二进制文件模式
‘t’文本文件模式,默认值
‘+’与r/w/x/a一同使用,在原功能基础上增加同时读写功能

文件内容的读取

操作方法描述
.read(size-1)读入全部内容,如果给出参数,读入前size长度
>>> s= f.read(2)
中国
.readline(size-1)读入一行内容,如果给出参数,读入该行前size长度
>>>s = f.readline()
中国是一个伟大的国家!
.readlines(hint=-1)读取文件所有行,以每行为元素形成列表,如果给出参数,读取前hint行
>>> s = f.readlings()
[“中国是一个伟大的国家!”]

文件数据的写入:

操作方法描述
.write(s)向文件写入一个字符串或字节流
f.write(“中国是一个伟大的国家!”)
.writeline(lines)将一个元素全为字符串的列表写入文件
>>>1s = [“中国”,“法国”,“美国"]
>>>f.writelines(ls)
中国法国美国
.seek(offset)改变当前文件操作指针的位置,offset含义如下:0一文件开头; 1一当前位置; 2-文件结尾>>>f.seek(0) # 回到文件开头

六、Python的面向对象

创建类和对象实现程序功能,例如汽车是类,奔驰、宝马、本田等汽车品牌是继承于汽车类的子类,张三的奔驰汽车是具体的对象。

  • 类(Class): 用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例。
  • 类变量:类变量定义在类中且在函数体之外。类变量在整个实例化的对象中是公用的。类变量通常不作为实例变量使用。
  • 实例变量:在类的声明中,通过变量赋予类的属性,在类声明的内部,但是在类的其他成员方法之外声明的,通常在__init__中声明。
  • 继承:创建一个派生类(子类)继承基类(父类)的字段和方法。继承也允许把一个派生类的对象作为一个基类对象对待。例如汽车是父类,不同品牌的汽车是子类,子类具有父类的基本特征,但也允许有各自不同的特征。
  • 方法:类中定义的函数。
  • 方法重写:如果从父类继承的方法不能满足子类的需求,可以对其进行改写,这个过程叫方法的覆盖(override),也称为方法的重写。
  • 实例化:创建一个类的实例,类的具体对象。
  • 对象:通过类定义的数据结构实例。例如某品牌的汽车具有‘反厂修理’的方法,使用时需要指明哪一辆汽车,如对张三的汽车进行返厂修理,‘张三的X牌汽车’就是对象,而不可能对这个品牌的所有汽车进行修理。
class Parent:  							# 定义父类
    academic = '本科'  					# 类变量

    def __init__(self,grade):
        self.grade = grade  			# 实例变量

    def myMethod(self):     			# 方法
        print('调用父类方法')

    def setAcademic(self,attr):
        Parent.academic = attr 			# 修改父类属性

class Child(Parent):  					# 定义子类

    def __init__(self, grade, number):
        super().__init__(grade)
        self.grade = grade  			# 实例变量
        self.number = number

    def myMethod(self):
        print('调用子类方法')


c = Child('大一','1001')  # 实例化子类
print(c.number)        	  # 打印子类自身属性,输出:1001
c.myMethod()          	  # 子类调用重写方法,输出:'调用子类 方法'

print(c.academic)      	  # 打印继承于父类属性值,输出:'本科'
c.setAcademic('硕士')     # 调用父类的方法
print(c.academic)         # 再次打印继承于父类属性值,输出:'硕士'
print(Parent.academic)    # 打印父类的属性值,输出:'硕士'

单下划线、双下划线、头尾双下划线说明

_foo_: 定义的是特殊方法,一般是系统定义名字 ,类似__init__() 之类的。

_foo: 以单下划线开头的表示的是 protected 类型的变量,即保护类型只能允许其本身与子类进行访问,不能用于 from module import *

__foo: 双下划线的表示的是私有类型(private)的变量,例如私有方法和私有属性,只能是允许这个类本身进行访问。

七、Python的第三方库

应用领域第三方库(个例)
数据分析Numpy,Pandas,SciPy
数据可视化Matplotlib,Seaborn,Mayavi
文本处理PyPDF2,NLTK,Python-docx
机器学习Scikit-learn,TensorFlow,MXNet
-----------------------------------------------------------------
网络爬虫Requests,Scrapy,pyspider
Web信息提取Beautiful Soup,Re,Python-Goose
Web网站开发Django,Pyramid,Flask
网络应用开发WeRoBot,aip,MyQR
-----------------------------------------------------------------
图形用户界面PyQt5,wxPython,PyGObject
游戏开发PyGame,Panda3D,cocos2d
虚拟现实VR Zero,pyovr,Vizard
图形艺术Quads,ascii_art,turtle
  • 29
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值