python基础一周学习 【任务三】 - Go语言中文社区

python基础一周学习 【任务三】


学习内容1

1.基本函数的构成:定义、实现和调用函数参数,函数返回值。 (第八章)

函数是python中的一种代码块,有固定的名称,可以实现固定的作用,即输入指定的参数值的数量和类型,执行后会返回固定的结果。函数可以使用python中内置的,也可以自己定义。

print(abs(-29))             #求绝对值
print(len([1,2,3]))         #求长度
print(str.capitalize('hello world'))     #首字母大写

def power(s):            #定义一个名为power的函数,它的功能是求参数的平方
   return(s*s)
print(power(3))

在这里插入图片描述

2.函数内部变量的作用域,可以通过locals()和globals()两个函数来了解。(第八章)

这两个函数主要提供基于字典的访问局部和全局变量的方式。每个函数都有着自已的名字空间,叫做局部名字空间,它记录了函数的变量,包括函数的参数和局部定义的变量。每个模块拥有它自已的名字空间,叫做全局名字空间,它记录了模块的变量,包括函数、类、其它导入的模块、模块级的变量和常量。还有就是内置名字空间,任何模块均可访问它,它存放着内置的函数和异常。
当一行代码要使用变量 x 的值时,Python会到所有可用的名字空间去查找变量,按照如下顺序:
1.局部名字空间 - 特指当前函数或类的方法。如果函数定义了一个局部变量 x,Python将使用
这个变量,然后停止搜索。
2.全局名字空间 - 特指当前的模块。如果模块定义了一个名为 x 的变量,函数或类,Python将使用这个变量然后停止搜索。
3.内置名字空间 - 对每个模块都是全局的。作为最后的尝试,Python将假设 x 是内置函数或变量。
(locals 是只读的,globals 不是)
此处参考https://blog.csdn.net/scelong/article/details/6977867

3.匿名函数:lambda,了解map函数,并用lambda完成列表(注:列表中各个元素全为数字类型)中每一个元素+1的操作。

lambda表达式可以生成一个函数,与def的功能类似,但这个函数不在其他地方调用,故没必要为其命名。

a=lambda x,y : x*y
print(a(3,4))    #12

map() 会根据提供的函数对指定序列做映射。
第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回包含每次 function 函数返回值的新列表,这个新列表是一个可迭代对象。

def power(s):            #定义一个名为power的函数,它的功能是求参数的平方
   return(s*s)
answer = map(power,[1,2,3,4,5,6])     
print(list(answer))      #将其作为列表返回

在这里插入图片描述

a=lambda x: x+1
a_1 = map(a,[1,2,3,4])
print(list(a_1))

在这里插入图片描述

4.了解文件操作,如何写入,读取,追加,并了解读取文件中每一行的几种方式。(第十章)

写入、读取和追加

要将文本写入文件,你在调用open() 时需要提供两个实参。第一个实参也是要打开的文件的名称;第二个实参(‘w’ )告诉Python,我们要以写入模式 打开这个文件。打开文件时,可指定读取模式 (‘r’ )、写入模式 (‘w’ )、附加模式 (‘a’ )或让你能够读取和写入文件的模式(‘r+’ )。如果不指定模式实参,Python将以默认的只读模式打开文件。
如果你要写入的文件不存在,函数open() 将自动创建它。然而,以写入(‘w’ )模式打开文件时千万要小心,因为如果指定的文件已经存在,Python将在返回文件对象前清空该文件。

filename = 'demo.txt'
with open(filename, 'w') as file_object: 
	file_object.write("hello world")   #将hello world写入文件demo.txt

读取每一行

要以每次一行的方式检查文件,可对文件对象使用for 循环:

filename = 'demo.txt'
with open(filename) as file_object: 
	for line in file_object:
print(line)
for lines in line:          #将其作为列表输出,可以方便的在with代码块外访问
	print(lines.rstrip())

学习内容2

1.创建和使用类(第九章),为什么说python中一切皆对象?,object类代表了什么?

# 类定义
class people:
    name = ''              # 定义基本属性
    age = 0                # 定义私有属性,私有属性在类外部无法直接进行访问
    __weight = 0
    def __init__(self, n, a, w):                # 定义构造方法
        self.name = n
        self.age = a
        self.__weight = w

在这个方法的名称中,开头和末尾各有两个下划线,这是一种约定,旨在避免Python默认方法与普通方法发生名称冲突。

__setitem__按照索引赋值
__getitem__按照索引获取值
__len__获得长度
__cmp__比较运算
__call__函数调用
__init__构造函数,在生成对象时调用
__del__析构函数,释放对象时使用
__repr__打印,转换
__add__加运算
__sub__减运算
__mul__乘运算
__div__除运算
__mod__求余运算
__pow__乘方

**“一切皆对象”**反映了python面向对象编程的实质,在python中,一切都是对象或者对象的关系,像字符串、函数这样设定好的类,用户也可以自创类。
Objects are Python’s abstraction for data. All data in a Python program is represented by objects or by relations between objects. (In a sense, and in conformance to Von Neumann’s model of a “stored program computer,” code is also represented by objects.)
对象是Python对数据的抽象。Python程序中的所有数据都由对象或对象之间的关系表示。(在某种意义上,并且符合冯·诺依曼的“存储程序计算机”的模型,代码也由对象表示的)。
——Python Documentation 3.5.2

2.使用类和实例(第九章),self关键字有什么作用?

def speak(self):
        print("%s is speaking: I am %d years old" % (self.name, self.age))

p = people('tom', 10, 30)
p.speak()

在这里插入图片描述
每个与类相关联的方法调用都自动传递实参self ,它是一个指向实例本身
的引用,让实例能够访问类中的属性和方法。

3.继承(第九章)(附加:类中三大特性,封装,继承和多态,c++和java都有多态,python明面上是没有多态的,但是也可以实现,如果有能力,可以探究下如何实现)

编写类时,并非总是要从空白开始。如果你要编写的类是另一个现成类的特殊版本,可使用继承 。一个类继承另一个类时,它将自动获得另一个类的所有属性和方法;原有的类称为父类 ,而新类称为子类 。子类继承了其父类的所有属性和方法,同时还可以定义自己的属性和方法。

4.import类到其他文件使用的几种方法,并在类中实现一个函数打印__file__关键字,看下__file__前后的变化,并解释原因(第九章)

从其他文件导入某个类时,可以用的方法包括如下几种:
(1)从该模块导入这个类;
(2)导入这个类所在的整个模块
(3)导入这个类所在模块的所有类

class o():
    def __init__(self):
        pass
    def a(h):
        print(__file__)
        print(str(h) + "dd")
## 定义类o

在这里插入图片描述
这里有一点问题,结果不同是因为传入的参数不同?

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/weixin_43726527/article/details/85988556
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢