python 02
函数的参数
默认参数: 函数的基本形参, 可以有默认参数, 什么是基本形参呢, 就是普通变量, 如字符串, 数字等. 并且带有默认参数的形参, 要放在后边.
传参时, 不必将所有的参数都传递, 可以只传递部分参数, 但是要明确指出你传递的参数.例如

虽然, a 在 c 的前边, 但是传参时可以显示制定将参数传给谁, 而不是依照顺序来传递.
可变参数, 列表(数组)*numbers和字典(键值对)**keywords
可以看到 列表(数组)的样子是 *numbers, 字典(键值对)的样子是 **keywords

传值, 还是传址?
基本形式参数类型, 是按照传值得方式, 但是类似列表和字典就是按照传址的方式.
模块
编写模块有多种方法, 但是, 最简单的方法是创建以 .py为扩展名的文件, 在文件中包含函数和变量.
如何使用模块

输出

当python执行 import sys 语句的时候, 它会寻找 sys 模块, 在本例中, 它是内置模块, 所以python知道它在哪里.
如果它是未编译的模块, 如用 python 写的模块, python解释器就会查找在 sys.pyth变量中的路径, 如果模块找到了, 就会运行那个模块的主体语句, 模块就可以利用了, 注意, 初始化过程仅在我们第一次导入模块的时候. (也就是说, 我们要导入的模块, 在我们程序运行的时候, 可能也会运行1次,加载到内存了).
在 sys 模块中, argv 变量可以用 sys.argv来引用, 这样的命名不会跟你程序本身的名字冲突.
当我们运行一个python 程序带参数时, python 就帮助我们将参数存储在了 sys.argv中, 这是一个字符串数组.
记住, 脚本名称本身就是第一个参数, 所以, 这里 sys.argv[0] 应该是 using_sys.py
sys.path 包含输入模块的目录列表, 我们可以观察到 sys.path的第一个字符串是空的-这个空的字符串表示当前目录也是 sys.path 的一部分, 这与 python-path的环境变量相同, 这意味着你可以直接输入位于当前目录的模块.
导入一个模块相对来说是一个比较费时的事情, 所以, python做了一些技巧改善.
1. 一种方法是创建按字节编译文件, 这些文件以.pyc作为扩展名.(中间状态) 这些.pyc文件通常与.py文件相同的方式在相同的路径中被创建. 如果 python 没有写入当前路径的权限, .pyc文件就不会被创建.
from ... import
如果你想直接输入 argv 变量到你的程序中(而不是每次都需要使用它时打 sys.), 那么你可以使用 from sys import argv 语句. 那么你可以使用 from sys import argv语句, 如果你想输入所有的sys模块的名字, 那么你可以使用from sys import * 语句. 一般来说, 应该避免使用 from ... import 而使用 import. 因为这样可以使你的程序更加易读.也可以避免名称的冲突.
模块的 __name__
每个模块都有一个名称, 在模块中可以通过语句来找出模块的名称. 加入我们只想在程序本身被使用的时候运行主块(非其作为模块引用被其他程序调用).而在它被别的模块输入的时候不运行主块, 我们该怎么做呢? 这可以通过模块的__name__属性完成.

如何工作: 每个 python 模块都有它的__name__, 如果它是'__main__', 这说明这个模块被用于单独运行, 我们可以进行相应的恰当的操作.
包
到目前为止, 你一定已经开始看到了组织你的程序的层次, 变量通常在函数内部运行, 函数和全局变量通常在模块内部运行. 那么, 如果你想自己组织模块呢? 包可以帮你完成任务.
包是模块的文件夹, 有一个特殊的 __init__.py文件,用来表明这个文件夹是特殊的因为其包含有python模块.
python 02的更多相关文章
- [Python] 02 - String
字符串 string 一.基本性质 不变性 Immutability 要变就 --> list --> string 二.功能函数 功能函数 S = 'Spam" S.find( ...
- python 02/100例
题目 输入某年某月某日,判断这一天是这一年的第几天? 分析 例如:2018年6月19日 天数 = 19天 + 一月天数 + 2月天数 + ... + 6月天数 注意 闰年的2月是29天,如果年份是闰年 ...
- python 02 8/21-8/23
计算机由硬件系统和软件系统组成,硬件系统分为由CPU(运算器+控制器)+内存储器(电信号)组成的主机部分,由输入设备+输出设备+外存储器(硬盘(磁信号).U盘)组成的外设部分.软件系统由系统软件和应用 ...
- Python 02 编写代码
原文:https://www.cnblogs.com/jimmy-share/p/9784219.html 方式: 交互式编程:打开python.exe文件后,直接输入代码即可.文件的位置(我本地): ...
- 机器学习 - Python 02
好了,咱们接着上一节的内容,继续学习机器学习中的Python语法部分.这一节算是Python语法的最后一节了.也就是说如果真的看懂了这两节的内容,理论上说就机器学习的领域或者方向,语言已经不是问题了. ...
- python 02 if while
1. if的格式 >>> 1<3 True 真>>> 1>3False 假 if 条件: 条件 + : (t ...
- 实验与作业(Python)-02 Python函数入门与温度转换程序
截止日期 实验目标 学会定义函数,使用函数.学会导入在某个文件中定义的函数. input获得值,然后通过eval或者int.float将其转换为相应的类型. 学会使用列表:访问列表.append.遍历 ...
- 【Python 02】计算机与程序设计
计算机 根据一系列指令对数据进行处理的工具或机器. 特征: 可以进行计算 根据指令执行任务 组成: 运算器+控制器(CPU) 存储器(内存及硬盘):内存存储临时数据.硬盘存储相对永久的数据 输入设备和 ...
- 实验与作业(Python)-02 Python函数入门与温度转换程序(函数、input、eval、int、float、列表)
截止日期 实验目标 学会定义函数,使用函数.学会导入在某个文件中定义的函数. input获得值,然后通过eval或者int.float将其转换为相应的类型. 学会使用列表:访问列表.append.遍历 ...
随机推荐
- 【Xpath学习】xpath都不会,说什么你做网站自动化测试的?
嗯我确实不太会.感觉我写的随笔很渣,不一定对,大家不要被我误导了,最好不要看.我也尽量保证写出来都是对的. 首先这俩给我搞晕了 1. // 不管层级: 相对路径 2. / care 层级: 表示到 ...
- LeetCode: Invert Binary Tree
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * Tre ...
- java类
1.四种访问控制符 private.不指明.protected.public 2.构造函数没有返回值 是因为构造函数默认返回的是类的实例对象.所以不需要写返回值 3.static static表示类拥 ...
- 简单粗暴地理解 JavaScript 原型链 (一个充满歪门邪理的理解方法,有助于新手哦!)
原型链理解起来有点绕了,网上资料也是很多,每次晚上睡不着的时候总喜欢在网上找点原型链和闭包的文章看,效果极好. 不要纠结于那一堆术语了,那除了让你脑筋拧成麻花,真的不能帮你什么.简单粗暴点看原型链吧, ...
- javaSE基础第二篇
1.JDK下载: www.oracle.com 2.JAVA_HOME bin目录:存放可执行文件.exe 把可能变的路径写入JAVA_HOME path=......;%JAVA_HOME%%; ...
- Linux操作系统备份之二:通过tar拷贝分区实现Linux操作数据的在线备份
http://www.tektea.com/archives/2163.html. 在<Linux操作系统备份之一:使用LVM快照实现Linux操作系统数据的在线备份>文章中,我们介绍了使 ...
- 19.在HTTP 1.0中,状态码401的含义是(?);如果返回“找不到文件”的提示,则可用 header 函数,其语句为(?)写出http常见的状态码和含义,至少5个.[完善题目]
状态401代表未被授权,header("Location:www.xxx.php"); 100-199 用于指定客户端应相应的某些动作. 200-299 用于表示请求成功. 300 ...
- 理解水平扩展和垂直扩展 (转载 http://yunjiechao-163-com.iteye.com/blog/2126981)
当一个开发人员提升计算机系统负荷时,通常会考虑两种方式垂直扩展和水平扩展.选用哪种策略主要依赖于要解决的问题 以及系统资源的限制.在这篇文章中我们将讲述这两种策略并讨论每种策越的优缺点.如果你已经 ...
- Ext.data.SimpleStore的使用方法
Ext.data.SimpleStore简单数据存储器 参数:data:Array数组类型.fields:数组对应的字段名称.var data1=[1,"订单1","16 ...
- 让 MySQL 在 Linux 下表名不区分大小写(实为表名全小写)
把 Windows 下的应用部署到 Linux 下,使用到了 Quartz 集群的特性,所以建了 MySql 的中间表,一启动看到报错: Invocation of init method faile ...