Python的平凡之路(3)
python中函数定义方法:def test(x): "The function definitions" x+=1 return xdef:定义函数的关键字test:函数名():内可定义形参"":文档描述(非必要,但是强烈建议为你的函数添加描述信息)x+=1:泛指代码块或程序处理逻辑return:定义返回值"""testing""" print('in the func1')
return 0 print('test end')
x = func1() print(x)
#过程,过程不需要返回值 def func2():
"""tesing2""" print('in the func2')
x = func1()
y = func2()
print('from func1 return is %s' %x) print('from func2 return is %s' %y)
import time def logger():
time_format='%Y-%m-%d %X' time_current=time.strftime(time_format)
with open('a.txt', 'a+') as f: #ab 以追加的方式打开二进制方式 f.write('time %s end action\n' %time_current)
def test1():
print ("test1 starting action...")
logger()
def test2():
print ("test2 starting action...")
logger()
def test3():
print ("test3 starting action...")
logger()
test1()
test2()
test3()
def t1():
print("IN T1") def t2():
print("IN T2")
return 0 def t3():
print("IN T3")
return 1,"Hello",['alex','lb'],{'WuDaLang':'lb'} #打印函数 x = t1()
y = t2()
z = t3() #打印函数返回值,#返回值数=0:返回None,返回值数=1:返回object,返回值数>1:返回元组tuple print(x) print(y)
return (res)
print("姓名:",name)
print("age:",age)
print("国籍",country)
print("课程",course)
print("地区",id)
stu_register("Alex",22,"CN","Python")
def stu_register2(name,age,*args,**kwargs): #**kwargs会把多传入的参数变成一个dict形式 print(name,age,args,kwargs)
stu_register2("Alex",22,"CN","Python",sex="male",province="HeBei")
print(y)
print(z) #位置参数调用,与形参一一对应 test(1,2,3) #关键字调用,与形参顺序无关,打印会按照位置形参顺序 test(y=4,x=8,z=10) #位置参数调用与关键字调用混用,要保持一一对应,关键字参数不能放在位置参数之前,打印会按照位置形参顺序 test(3,z=4,y=11)
#默认参数特点:调用函数的时候,非必传 def test(x,y=2):
print(x)
print(y)
test(1)
#参数组 def test(*args): #*代表args代表的参数个数不固定且*args只接受位置参数 print(args)
test(1,2,3,4,5)
test(*[1,2,3,4,5]) # args=tuple([1,2,3,4,5]) def test1(x,*args):
print(x)
print(args)
test1(0,1,2,3,4,5,6,7,8,9)
def test2(**kwargs): #**kwargs把N个关键字转换成字典方式 print(kwargs)
test2(name='alex',age=8,sex='F')
test2(**{'name':'alex','age':8})
def test3(name,**kwargs):
print(name)
print(kwargs)
print(age)
print(args)
print(kwargs)
test4('alex',18,sex='F',hobby='TSL') #结果中对于args,返回只能是空元组{} test4('alex',18,33,sex='F',hobby='TSL') #对于args,返回值为{33,} school = "oldboy" #定义全局变量 def change_name(name):
global school #在函数中定义全局变量,一定要掌握。 school = "OLDBOY" print("Before change:",name,school)
name = "Alex li" #这个函数就是这个变量的作用域 print("After change:",name,school)
name = "alex" change_name(name) print("last change is",name,school)
#列表、字典、集合能在函数中修改 names = ["Alex","Jack","Rain"] #names_tuple = (1,2,3,4) #元组不能改 def change_name():
names[0] = "jinjiaodawang" #names_tuple[0] = 3 print("inside func",names)
change_name() print(names)
print(a)
print(b)
print ("length of c is: %d" % len(c))
print (c)
funcD(1,2,3,4,5,6,7)
def funcE(a,b,c):
print("\n---你猜会有什么结果:---")
print(a)
print(b)
print(c)
print("---oh,原来是这样:---\n")
funcE(c=100,b=300,a=800)
for x in b:
print(x + ":" +str(b[x]))
funcF(100,c="您好",d="这是一个精彩的世界!",b=200)
if x > y:
return x
elif x == y:
if x > y:
return x
elif x == y:
print(n)
if int(n/2) > 0:
return calc(int(n/2))
print("-->",n)
calc(10)
sum = 0
if n <= 0:
return 1
else:
lambda声明该行代码是一个lambda表达式,紧跟在后面的是函数的参数,多个参数用逗号,分割;然后使用冒号:分割开参数和函数体。def use_lambda():
return lambda x: x * x
#一种列表传值 def get_square(l): L=[] for i in l: L.append(i*i) print(L)
get_square([1,2,3,4])
#map函数 iter = map(lambda x: x*x ,range(50)) for i in iter: print('i : %d' %i)
r = map(lambda x,y : x*y,[1,2,3,4,5],[6,7,8,9,10]) for i in r: print('i : %d' % i) 六、函数式编程
return x * x
def h(func,x):
return func(x) * func(x)
print(h(f,2 ))
def m(x):
def n():
return x ** x
return n
sub_func = m(2) print(sub_func())
#python中,对象和方法都是变量 def say_hello(name):
print('Hello,%s' % name)
say_hello("lovexiaowi" ) #等同于以下写法,给函数赋值给sh 变量
#sh = say_hello
#Author is wspikh
# -*- coding: encoding -*-
print(all([0,1,-5]))
print(any([0,1,-5]))
#十进制转二进制
print(bin(10))
#过滤以及匿名参数
print(i)
print("")
print("")
#map
res = map(lambda n:n*n,range(10)) # 等同于[i*2 for i in range(10)]
for i in res:
print(i)
print("")
print("")
#reduce
import functools
res = functools.reduce(lambda x,y:x+y,range(10))
print(res)
print("")
print("")
#globals
print(globals())
print("")
#十进制转十六进制
print(hex(255))
print("")
#十进制转八进制
print(oct(16))
print("")
#zip
a = [1,2,3,4,5]
b = ['a','b','c','d','e']
for i in zip(a,b):
print(i)
Python的平凡之路(3)的更多相关文章
- Python的平凡之路(8)
(本文是对平凡之路(7)的补充等) 一.动态导入模块 import importlib __import__('import_lib.metaclass') #这是解释器自己内部用的 #importl ...
- Python的平凡之路(20)
(提问复习为主) 一.Django请求的生命周期 武彦涛: 路由系统 -> 视图函数(获取模板+数据=>渲染) -> 字符串返回给用户 二.路由 ...
- Python的平凡之路(19)
一.Django请求生命周期 对于所有的web框架来说本质就是一个socket服务端,浏览器是socket客户端 ...
- Python的平凡之路(18)
一.JS 正则部分 test - 判断字符串是否符合规定的正则rep = /\d+/;rep.test("asdfoiklfasdf89asdfasdf")# truerep ...
- Python的平凡之路(16)
一.HTML+CSS补充 0.常用页面布局 <!DOCTYPE html> <html lang="en"><head> <meta ch ...
- Python的平凡之路(13)
一.Python的paramiko模块介绍 Python 的paramiko模块,该模块和SSH用于连接远程服务器并执行相关操作 SSH client 用于连接远程服务器并执行基本命令 基于用户名和密 ...
- Python的平凡之路(12)
一.数据库介绍 数据库(Database)是按照数据结构来组织.存储和管理数据的仓库,每个数据库都有一个或多个不同的API用于创建,访问,管理,搜索和复制所保存的数据.我们也可以将数据存储在文件中,但 ...
- Python的平凡之路(11)
一. rabbitmq 1 进程Queue: 父进程与子进程进行交互,或者同属于同一父进程下多个子进程进行交互 2 队列通信: send1.py #!/usr/bin/env python#Au ...
- Python的平凡之路(10)
异步IO 数据库 队列 缓存 1.Gevent协程 定义:用户态的轻量级线程.协程拥有自己的寄存器上下文和栈.协程调度切换时,将寄存器上下文和栈保存到其他地方,在切回来的时候,恢复先前保存的寄存器上下 ...
- Python的平凡之路(9)
一.Paramiko模块练习 1. Paramiko模块介绍 Paramiko是用python语言写的一个模块,遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接 2 .SSHclie ...
随机推荐
- CentOS配置SSH免密码登录后,仍提示输入密码
CentOS配置SSH无密码登录需要3步: 生成公钥和私钥 导入公钥到认证文件,更改权限 测试 1.生成公钥和私钥 ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa 默 ...
- Unity3D UGUI学习系列索引(暂未完成)
U3D UGUI学习1 - 层级环境 U3D UGUI学习2 - Canvas U3D UGUI学习3 - RectTransform U3D UGUI学习4 - Text U3D UGUI学习5 - ...
- php数组插入数据库这个功能该怎么实现
原文网址:https://segmentfault.com/q/1010000004048449 比如一个数组$a=array("a"=>"1",&quo ...
- laravel框架总结(七) -- 数据库操作
1.使用DB门面进行基本操作 一旦你设置好了数据库连接,就可以使用 DB facade 来进行查找.DB facade 提供每个类型的查找方法:select.update.insert.delet ...
- Android自定义View自定义属性
1.引言 对于自定义属性,大家肯定都不陌生,遵循以下几步,就可以实现: 自定义一个CustomView(extends View )类 编写values/attrs.xml,在其中编写styleabl ...
- Xcode代码提示联想功能失效,按command键点不进去类库,提示“?”
参考文档:这两篇文章很好的解决了问题.可以很好的解决了问题 Xcode代码提示联想功能失效,按command键点不进去类库,提示“?”,代码全是白色 Xcode4中代码补全(Code Completi ...
- 【转载】详解CreateProcess调用内核创建进程的过程
原文:详解CreateProcess调用内核创建进程的过程 昨天同学接到了腾讯的电面,有一题问到了CreateProcess创建进程的具体实现过程,他答得不怎么好吧应该是, 为了以防万一,也为了深入学 ...
- kali linux安装virtualbox虚拟机之爬坑经历
很多kali爱好者想把kali linux作为系统使用,但是有些win下的程序有时候也需要用到,此时需要虚拟机. kali系统在安装虚拟机的时候也会遇到一大堆坑,接下来是我的爬坑过程. 一波三折. 环 ...
- win7 用户目录
robocopy "C:\Users" "D:\Users" /E /COPYALL /XJ /XD "C:\Users\Administrator& ...
- 《BI那点儿事》数据流转换——多播、Union All、合并、合并联接
建立测试数据: CREATE TABLE FactResults ( Name ) , Course ) , Score INT ) INSERT INTO FactResults ( Name , ...