python语法笔记(一)

1. python中多个函数或者类定义可以放在一个.py 文件中,视为一个模块。模块的.py文件中,一般要写 if __name__ == ‘__mian__‘ 用来单独执行该模块内的某些函数。

2. python多个模块放在同一个文件夹中,并在文件夹中新建一个 __init__.py 文件,则该文件夹就可以形成一个包。__init__.py 文件就是告诉python解释器该文件夹为一个包,__init__.py 中内容可以为空。

3. 在python文件中可以import某个包,某个包中得某个模块,某个模块,某个模块中的某个类或者函数,比如;

import pack1
#这样在使用pack1中的模块或者其他东西,需要在模块名前写明 pack1

import pack1.module1
#在使用module1时,需要写pack1.module1.xxx

import module1 from pack1
#这样,在使用module1时,可以不用写pack1,只写 module1.xxx

import module1.classA
#在使用classA的时候,需要写明 module1.classA

import classA from module1
#使用classA的时候,只需要 classA

import module1.func1
#使用func1的时候,需要写 module1.func1

import func1 from module1
#使用func1的时候,只需要写 func1

####注意,以上都是默认命名空间不会发生冲突,即不会出现这种情况:
# module1和module2中都有classA,且同时 import classA from module1, import classA from #module2,因为这样会出现冲突

4. python程序执行的时候,包和模块的搜索路径为:

(1)当前文件夹

(2)系统变量PYTHONPAHTH 定义的路径

(3)python标准库的安装路径

5. python函数传递参数的方式可以有如下几种方式:

(1)位置传递参数

即传递进去的参数顺序和函数定义的顺序一致,如果有默认参数,则默认参数要放在最后的位置

(2)关键字传递参数

即调用函数的时候,写明 func(arg1 = real_arg1, arg2 = real_arg2..),即形参和实参明确对应,此时,实际参数的顺序就不必按照函数定义时的参数顺序来写。

位置传递参数和关键字传递参数可以混用,但是位置传递的参数需要放在关键字传递的参数之前,比如 func(real_arg1, arg2 = real_args, arg3 = real_arg3....)

(3)包裹传递

类似c语言的非定项参数,有两种传递方式,

(1)通过元组来传递,函数的定义为:

def func(*args):

  xxxx

实际调用的时候:

func(1,2,3,4) #1,2,3,4自动包装成了一个元组

(2)通过字典来传递,函数定义为:

def func(**args):

  xxxx

实际调用的时候:

func(a=‘hello‘ , b = ‘world‘, c = 123) #参数自动封装成了一个字典 {‘a‘:‘hello‘, ‘b‘:‘world‘, ‘c‘:123}

(4)解包裹传递

若函数定义的时候的参数为多个,而我们想要将一个元组或者一个字典的各个元素分别作为函数的多个参数,则将元组或者字典作为参数传给函数的时候,可以:

def func(a, b, c):

  xxx

调用的时候:

t = (1,2,3)

func(t)

t2 = {‘a‘:1, ‘b‘:23, ‘c‘:‘hello world‘}

func(t2)  #将字典的键值对分别作为各个参数

在定义或者调用参数时,参数的几种传递方式可以混合。但在过程中要小心前后顺序。基本原则是,先位置,再关键字,再包裹位置,再包裹关键字,并且根据上面所说的原理细细分辨。

注意:请注意定义时和调用时的区分。包裹和解包裹并不是相反操作,是两个相对独立的过程。

时间: 2024-08-10 17:43:20

python语法笔记(一)的相关文章

python语法笔记(二)

1. 循环对象 循环对象是一类特殊的对象,它包含一个next()方法(在python3中是 __next__()方法),该方法的目的是进行到下一个结果,而在结束一系列结果之后,举出 StopIteration错误. 当一个循环结构(比如for)调用循环对象的时候,它就会每次循环的时候调用 next()方法,直到 StopIteration出现,for循环接收到 StopIteration,就知道循环结束,停止调用next().比如: f = open('1.txt') f.next() f.ne

python语法笔记(七)

python标准库 Python有一套很有用的标准库(standard library).标准库会随着Python解释器,一起安装在你的电脑中的.它是Python的一个组成部分.这些标准库是Python为你准备好的利器,可以让编程事半功倍 第一类:Python增强 Python自身的已有的一些功能可以随着标准库的使用而得到增强. 1) 文字处理 Python的string类提供了对字符串进行处理的方法.更进一步,通过标准库中的re包,Python可以用正则表达式(regular expressi

python语法笔记(六)

1.序列的方法     python中序列包含列表list.元组tuple.字符串str. 可以用于序列(表.元组.字符串)的内建函数: len(s) 返回: 序列中包含元素的个数 min(s) 返回: 序列中最小的元素 max(s) 返回: 序列中最大的元素 all(s) 返回: True, 如果所有元素都为True的话 any(s) 返回: True, 如果任一元素为True的话 可用于列表和元组的方法: sum(s) 返回:序列中所有元素的和 # x为元素值,i为下标(元素在序列中的位置)

python 语法笔记(一)

#python3里面input默认接收到的事str类型,而python2里面却认为是int类型n=int(input('请输入想要第几个数')) #如果将int省去,python3中该程序将会报错a,b=0,1if n > 3: print(type(n)) print(type(3)) for i in range(3,n): a,b=b,a+b print(b)else: print(0)

01-Python学习笔记-基础语法

Python标识符 -d           在解析时显示调试信息 -O           生成优化代码 ( .pyo 文件 ) -S           启动时不引入查找Python路径的位置 -v            输出Python版本号 -X           从 1.6版本之后基于内建的异常(仅仅用于字符串)已过时. -c cmd     执行 Python 脚本,并将运行结果作为 cmd 字符串. file           在给定的python文件执行python脚本. P

Python学习笔记(二)基本语法

Class 2 一.交互式编程 交互式编程不需要创建脚本文件,是通过 Python 解释器的交互模式进来编写代码. linux上你只需要在命令行中输入 Python 命令即可启动交互式编程,如下图: 1 $ python 2 Python 3.5.2 (v3.5.2:4def2a2901a5, Jun 25 2016, 22:01:18) 3 [MSC v.1900 32 bit (Intel)] on win32 4 Type "help", "copyright"

Python学习笔记--未经排版

Python 学习笔记 Python中如何做到Print() 不换行 答:Print("输出内容",end='不换行的分隔内容'),其中end=后面为2个单引号 注:在Python 2.x中,Print "输出内容", 即在输出内容后加一逗号 Python中 is 和 == 的区别 答:Python中的对象包含三要素:id.type.value 其中id用来唯一标识一个对象,type标识对象的类型,value是对象的值 is判断的是a对象是否就是b对象,是通过id来

python学习笔记7:装饰器

一.什么是装饰器 装饰器,它本身是一个函数. 装饰器的作用在于,在不改变现有函数的调用方式的前提下,给其新增一些功能:这些功能一般都是公用的. 它经常用于有切面需求的场景,比如:插入日志.性能测试.事务处理.缓存.权限校验等场景.(此句引用:https://zhuanlan.zhihu.com/p/25648515) 二.学装饰器的前提知识 1.函数即变量 2.高阶函数 3.函数嵌套 以上三个知识点,在我的上一篇博客'python学习笔记6:函数'里 有详细介绍,这里不赘述 三.一个例子 1.场

python 学习笔记 7 -- Python关键字总结

0.写在前面的话 学习一门语言最重要的功课是练习与复习,在<笨方法学Python>中第三十七节虽然没有教你任何内容,但是它提醒我们:"学了这么多,你还能记得多少?该复习了!" 下面我们就对这一节的第一部分"关键字"来做个复习: Python中的关键字包括如下: and       del        from      not      while    as        elif       global    or       with