当前位置: 首页 > news >正文

python 学习笔记2(list/directory/文件对象/模块/参数传递)

python 学习笔记2(list/directory/文件对象/模块/参数传递)

### Python的强大很大一部分原因在于,它提供有很多已经写好的,可以现成用的对象。

11. list

list是一个类。每个列表都属于该类。

>>>nl = [1,2,5,3,5]

实际上,nl是类list的一个对象。

 

list 的常用方法:

nl.count(5)       # 计数,看总共有多少个5

nl.index(3)       # 查询 nl 的第一个3的下标

nl.append(6)            # 在 nl 的最后增添一个新元素6

nl.sort()               # 对nl的元素排序

nl.pop()          # 从nl中去除最后一个元素,并将该元素返回。

nl.remove(2)            # 从nl中去除第一个2

nl.insert(0,9)          # 在下标为0的位置插入9

 

len(nl)              #用来返回list所包含的元素的总数

 

运算符+,-,>,< 等都是定义在类内部的方法。

+: __add__

 

12. 词典 directory

与列表list 相似,词典也可以储存多个元素。这种储存多个元素的对象称为容器(container)。

词典的元素包含有两部分,键和值,{}。   如 dic = {'tom' : 11,  'sam' : 57, 'lily' : 100}

词典的元素没有顺序,要通过键来引用。 如 dic[‘tom’]

 

常用方法:

>>>dic.keys()           # 返回dic所有的键

>>>dic.values()         # 返回dic所有的值

>>>dic.items()          # 返回dic所有的元素(键值对)

>>>dic.clear()                # 清空dic,dict变为{}

>>>del dic['tom']             # 删除 dic 的‘tom’元素

 

len(dic)                     #用来返回键值对的个数

 

13. 文本文件:

open()  有3种模式, r, w, a 

close() 

 

Q1: r 时下面不能写入内容??

A1: 是的,r后关闭,再w模式打开, 进行写

Q2: close之后,w再write, 把之前的数据覆盖了?

A2: w 模式下,f.write() 是覆盖写入,会清空之前的内容 

Q3: 怎么追加数据?

A3: a模式下,执行f.write()

Q4: 怎么在写入时换行?

A4: f.write('\n'+"内容"+'\n')

 

常用方法:

content = f.read(N)          # 读取N bytes的数据

content = f.readline()       # 读取一行

content = f.readlines()      # 读取所有行,储存在列表中,每个元素是一行。

 

f.write('\n'+"内容"+'\n')

 

14. 模块

模块和对象方法一样,都是为了重复利用。

一个.py 文件构成一个模块,可以调用其他文件中的程序。

引入方式:  

如a.py   b.py(来引入a模块)

import a 

import a as b                  # 引入模块a,并将模块a重命名为b

from a import function1   # 从模块a中引入function1对象。调用a中对象时,直接使用function1,而不是a.function1。

from a import *               # 从模块a中引入所有对象。调用a中对象时,直接使用对象,而不是a.对象。

 

引入模块后,可以通过模块.对象的方式来调用引入模块中的某个对象。

 

可调用的模块放在下面3个路径下:

  1. 程序所在的文件夹  (自定义)
  2. 标准库的安装路径    (内置)
  3. 操作系统环境变量PYTHONPATH所包含的路径

模块包:

相同功能的模块,可以放在同一个文件夹下;

里面必须包含一个__init__.py文件,以便python识别这是一个模块包;

导入模块包, import folder.yourModule1...

 

自定义导入模块:http://www.cnblogs.com/ylan2009/p/4186768.html 

 

Q: 模块包下的文件需要一个一个 导入? folder.module1?folder.module2?

Q: 模块包导入后,子模块直接运行??

 

15. 函数的参数传递

def add_them(a,b,c):

    return a+b+c

位置传递:

add_them(1,2,3)   # a=1,b=2,c=3

关键字传递:

add_them(b=2,c=3,a=1)   #b=2,c=3,a=1

add_them(2,c=3,b=1)       #a=2,c=3,b=1 ; 和位置传递混用,位置要出现在前面

默认值:

def add_them(a,b,c=10)

add_them(1,2)    #a=1,b=2,c=10

包裹位置 packing:

def add_them(*name)

add_them(1,2,3)

在name前加*表示,这是一个元组;name收集输入的参数1,2,3,根据位置构成一个元组(tuple)(1,2,3)。

再对该元组操作即可。

包裹关键字:

def add_them(*name)

在name前加**表示,这是一个字典;name收集输入的参数如a=1,根据构成一个字典(dic) {a:1}。

再对该字典操作即可。

解包裹:unpacking

*和**也可以在参数调用时使用。

add_name(a,b,c)

x=(1,2,3)

add_name(*x)   #参数前面使用*告诉函数,要把x拆为3个变量。

 

混合:

顺序为先位置,后关键字,再包裹位置,包裹关键字

 

posted on 2016-04-08 16:34 Suckseedeva 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/skyEva/p/5368667.html

相关文章:

  • 干货--JMS(java消息服务)整合Spring项目案例
  • Java基础学习总结(38)——Lombok的使用和原理
  • Educational Codeforces Round 11
  • 程序中的得与失
  • nodejs中下载文件回调问题
  • 你所不知的SEO高级策略技巧
  • 利用枚举类型实现统计
  • Educational Codeforces Round 9
  • 游戏坦克大战 说明(待续。。。)
  • json.dumps loads 终于区分出来了
  • js自己初探究
  • 从Sql server 2008获取表字段属性信息,注释信息
  • 定制UITabBar显示样式
  • C实现的静态顺序表
  • 053(三十二)
  • 2017-09-12 前端日报
  • 2019年如何成为全栈工程师?
  • Android 初级面试者拾遗(前台界面篇)之 Activity 和 Fragment
  • C++11: atomic 头文件
  • Django 博客开发教程 8 - 博客文章详情页
  • js如何打印object对象
  • macOS 中 shell 创建文件夹及文件并 VS Code 打开
  • 对象管理器(defineProperty)学习笔记
  • 简单实现一个textarea自适应高度
  • 人脸识别最新开发经验demo
  • 说说动画卡顿的解决方案
  • 为物联网而生:高性能时间序列数据库HiTSDB商业化首发!
  • 问题之ssh中Host key verification failed的解决
  • 学习JavaScript数据结构与算法 — 树
  • 做一名精致的JavaScripter 01:JavaScript简介
  • LevelDB 入门 —— 全面了解 LevelDB 的功能特性
  • ​低代码平台的核心价值与优势
  • # Swust 12th acm 邀请赛# [ E ] 01 String [题解]
  • # 日期待t_最值得等的SUV奥迪Q9:空间比MPV还大,或搭4.0T,香
  • $.ajax中的eval及dataType
  • (9)STL算法之逆转旋转
  • (delphi11最新学习资料) Object Pascal 学习笔记---第7章第3节(封装和窗体)
  • (Git) gitignore基础使用
  • (板子)A* astar算法,AcWing第k短路+八数码 带注释
  • (附源码)ssm基于web技术的医务志愿者管理系统 毕业设计 100910
  • (规划)24届春招和25届暑假实习路线准备规划
  • (提供数据集下载)基于大语言模型LangChain与ChatGLM3-6B本地知识库调优:数据集优化、参数调整、Prompt提示词优化实战
  • (转)Google的Objective-C编码规范
  • (转载)深入super,看Python如何解决钻石继承难题
  • ./configure、make、make install 命令
  • ./和../以及/和~之间的区别
  • .Net Core与存储过程(一)
  • .net mvc actionresult 返回字符串_.NET架构师知识普及
  • .Net mvc总结
  • .net 程序 换成 java,NET程序员如何转行为J2EE之java基础上(9)
  • @param注解什么意思_9000字,通俗易懂的讲解下Java注解
  • @SentinelResource详解
  • [2021]Zookeeper getAcl命令未授权访问漏洞概述与解决
  • [BROADCASTING]tensor的扩散机制
  • [BZOJ1053][HAOI2007]反素数ant