Python基础篇(六)
retun空值,后面的语句将不再被执行
>>> def test():
... print("just a test!")
... return
... print("will not be print")
...
>>> test()
just a test!
和Java类似,在传递参数时,当参数是字符串,元组时,传递的其实是拷贝,修改实际参数不会影响到形式参数。当参数是对象时,修改实际参数将会影响到形式参数。
>>> def changeName(name):
... name = "Changed Name"
... return name
...
>>> name = "Jhon Brown"
>>> changeName(name)
'Changed Name'
>>> name
'Jhon Brown'
实参为对象时的情况:
>>> def changeList(list):
... list[0] = "Change Element"
... return list
...
>>> list = ["one","two"]
>>> changeList(list)
['Change Element', 'two']
>>> list
['Change Element', 'two']
可以为实参取别名,这样当参数为多个的时候不会因位置错误而导致错误的结果
>>> def hello1(arg1,arg2):
... print("%s %s" % (arg1,arg2))
...
>>> hello1(arg1 = "hello",arg2 = "world")
hello world
使用*收集剩余的参数:
>>> def printParams(title,*params):
... print(title)
... print(params)
...
>>> printParams("Params",2,3,4)
Params
(2, 3, 4)
定义和调用函数时都是用**,适用于元组或者字典。
>>> def with_stars(**database):
... print(database["name"]+ "\'s age is" + database["age"])
...
>>> database = {"name":"Grubby","age":"29"}
>>> with_stars(**database)
Grubby's age is29
>>> def without_stars(database):
... print(database["name"]+ "\'s age is" + database["age"])
...
>>> data = {"name":"Grubby","age":"29"}
>>> without_stars(data)
Grubby's age is29
>>> def story(kwd):
... print("Once there is a %(player)s called %(name)s," % kwd)
...
>>> kwd = {"player":"king","name":"Chrile"}
>>> story(kwd)
Once there is a king called Chrile,
vars函数会返回一个字典,包含变量与赋值的关系
>>> x,y,z =1,2,3
>>> scope =vars()
>>> scope["x"]
1
递归调用的例子
def search(sequence,number,low=0,upper = None):
if upper is None :
upper = len(sequence) -1
if low == upper:
if sequence[low] == number:
return low
else:
return -1
else:
index = (int)((low + upper)/2)
if sequence[index] > number:
return search(sequence,number,low,index-1) #这里的return是必须的,否则将没有返回值
elif sequence[index]
return search(sequence,number,index+1,upper)
else:
return index
sequence = [1,3,9,11,56]
search(sequence,3)
创建自己的类:
>>> class Person:
... def setName(self,name):
... self.name = name
... def getName(self):
... return self.name
... def greet(self):
... print("name is %s" % self.name)
...
>>> foo = Person()
>>> bar = Person()
>>> foo.setName("Luke")
>>> foo.getName()
'Luke'
>>> foo.greet()
name is Luke
>>> bar.setName("Sky")
>>> bar.getName()
Sky'
>>> bar.greet()
name is Sky
>>> bar.name
'Sky'
>>> bar.name = "Jason" #属性使用类加上.直接使用
>>> bar.greet()
name is Jason
>>> class Bird:
... __song = "spark"
... def sing(self):
... print(self.song)
...
>>> bird = Bird()
>>> bird.sing()
Traceback (most recent call last):
File "", line 1, in
File "", line 4, in sing
AttributeError: 'Bird' object has no attribute 'song'
>>> class Bird:
... song = "spark"
... def sing(self):
... print(self.song)
...
>>> bird = Bird()
>>> bird.sing()
spark
Python基础篇(六)的更多相关文章
- python基础篇(六)
PYTHON基础篇(六) 正则模块re A:正则表达式和re模块案例 B:re模块的内置方法 时间模块time A:时间模块的三种表示方式 B:时间模块的相互转换 随机数模块random A:随机数模 ...
- python基础篇(一)
PYTHON基础篇(一) 变量 赋值 输入,输出和导入 A:输入 B:输出 C:导入 运算符 A:算数运算符 B:比较运算符 C:赋值运算符 D:位运算符 E:逻辑运算符 F:成员运算符 G:身份运算 ...
- python基础篇(文件操作)
Python基础篇(文件操作) 一.初始文件操作 使用python来读写文件是非常简单的操作. 我们使用open()函数来打开一个文件, 获取到文件句柄. 然后通过文件句柄就可以进行各种各样的操作了. ...
- 面试题之第一部分(Python基础篇) 80题
第一部分(python基础篇)80题 为什么学习Python?==*== # 1. python应用于很多领域,比如后端,前端,爬虫,机器学习(人工智能)等方面,几乎能涵盖各个开发语言的领域,同时它相 ...
- python基础篇-day1
python基础篇 python是由C语言写的: pass 占位符: del,python中全局的功能,删除内存中的数据: 变量赋值的方法: user,pass = 'freddy','freddy1 ...
- python基础篇之进阶
python基础篇之进阶 参考博客:http://www.cnblogs.com/wupeiqi/articles/5115190.html python种类 1. cpython 使用c解释器生产 ...
- Python基础知识(六)------小数据池,集合,深浅拷贝
Python基础知识(六)------小数据池,集合,深浅拷贝 一丶小数据池 什么是小数据池: 小数据池就是python中一种提高效率的方式,固定数据类型使用同一个内存地址 代码块 : 一个文 ...
- python基础篇(五)
PYTHON基础篇(五) 算法初识 什么是算法 二分查找算法 ♣一:算法初识 A:什么是算法 根据人们长时间接触以来,发现计算机在计算某些一些简单的数据的时候会表现的比较笨拙,而这些数据的计算会消耗大 ...
- python基础篇(二)
PYTHON基础篇(二) if:else,缩进 A:if的基础格式和缩进 B:循环判断 C:range()函数和len()函数 D:break,contiue和pass语句 for,while循环 函 ...
随机推荐
- 访问Google工具
借助Google访问助手加速 下载地址: http://www.ggfwzs.com/
- 动态链接库(DLL)编写经验
我首先说明DLL的生成方法,之后再补充一些特殊之处. 生成方法: 1.对需要导出的类,在头文件中添加 #ifdef CLASS _API #define CLASS_API _declspec(dll ...
- python基础1 day2
一.上节课回顾1. 编译型: 将源码一次性全部编译成二进制. C 优点:执行效率高. 缺点:开发效率慢,不可跨平台使用. 解释型: 当程序执行时,代码一行一行的去解释成二进制. python 优点:开 ...
- javascript数据类型之Array类型
Array类型 除了Object之外,Array类型恐怕是ECMAScript中最常用的类型了.而且,ECMAScript中的数组与其他多数语言中的数组有着相当大的区别.虽然ECMAScript数组与 ...
- YUI3组件框架之plugin
plugin相关源码分析: plugin功能包括如下几个模块, 简单分析如下: pluginhost-base 维护对象 this._plugins = {}: 并提供方法: plug.unplug. ...
- VUE之随笔小总结1
VUE 它是一个构建用户界面的JavaScript框架vue指令: 是带有v-前缀的特殊属性,通过属性来操作元素 v-text:在元素当中插入文本 eg:属性值会覆盖自己插入的值 //插入一段文本&l ...
- 各大型邮箱smtp服务器及端口收集
>新浪邮箱smtp服务器 外发服务器:smtp.vip.sina.com 收件服务器:pop3.vip.sina.com 新浪免费邮件 外发服务器:smtp.sina.com.cn 收件服务器: ...
- -------- Rootkit 核心技术——利用 nt!_MDL 突破 KiServiceTable 的只读访问限制 Part II --------
------------------------------------------------------------------------------------------- 本篇开始进入正题 ...
- Codeforces 448 E. Divisors (DFS,储存结构)
题目链接:E. Divisors 题意: 给出一个X,f(X)是X所有约数的数列(例6:1 2 3 6),给出一个k,k是递归的次数(例:k=2 : f(f(X)) ; X=4,k=2: 1 1 2 ...
- Python 爬取美女图片,分目录多级存储
最近有个需求:下载https://mm.meiji2.com/网站的图片. 所以简单研究了一下爬虫. 在此整理一下结果,一为自己记录,二给后人一些方向. 爬取结果如图: 整体研究周期 2-3 天, ...