一、字符串格式化

#字符串的拼接#
msg='i am a best boy'+'非常帅'
print(msg)
name=input('name:')
hobby=input(('hobby:'))
age=input('age:')
print (' i am %s ,my hobby is %s,age%s ,%s,年龄:%d'%(name,hobby,age,[222,3333,'gdgfvsdhfs'],555555))
#str能接受所有类型,
#打印浮点数  在%后边加个点,在添加数字,表示保留几位小数
msg1='float%.2f:'% 99999.22222258898995889888
print(msg1)
#打印百分比 %%
msg2='%%float%3s:'% 99999.2
print(msg2) #根据键值对传值
msg3='我爱%(china)s,我爱%(city)s'%{'china':'中国','city':'甘肃-渭源'}
print(msg3)
msg3='我爱%(china)-60s,我爱%(city)s'%{'china':'中国','city':'甘肃-渭源'}
msg4='我爱\033[41;1m%(china)+2s\033[0m,我爱%(city)s'%{'china':'中国','city':'甘肃-渭源'}
print(msg3)
print(msg4)
#返回我爱中国 ,我爱甘肃-渭源
# 我爱中国,我爱甘肃-渭源
#format
#format格式化 不一一对应将会报错
name=input('name')
age=input('age')
sex=input('sex')
tp1='i anm {},age{},sex{}'.format(name,age ,sex) print(tp1)
tp2='i anm {2},age{0},sex{1}'.format(name,age ,sex)
print(tp2)
tp3='i anm {2},age{2},sex{1}'.format(name,age ,sex)
print(tp3)
#返回:name55
# age55
# sex5h
# i anm 55,age55,sex5h
# i anm 5h,age55,sex55
# i anm 5h,age5h,sex55
print('i am {name1},{age1}'.format(**{'name1':'name','age1':'age'}))
print('i am {name1},今年{age1}岁'.format(name1='张琪',age1='19'))
# i am name,age
# i am 张琪,今年19岁
print('i am {[0]},我今年{[0]}'.format(['小明','小丽'],['23','18']))
#i am 小明,我今年23

初中数学函数定义:一般的,在一个变化过程中,如果有两个变量x和y,并且对于x的每一个确定的值,y都有唯一确定的值与其对应,那么我们就把x称为自变量,把y称为因变量,y是x的函数。自变量x的取值范围叫做这个函数的定义域

例如y=2*x

python中函数定义:函数是逻辑结构化和过程化的一种编程方法。

python中函数定义方法:

def test(x):
"The function definitions"
x+=1
return x

def:定义函数的关键字
test:函数名
():内可定义形参
"":文档描述(非必要,但是强烈建议为你的函数添加描述信息)
x+=1:泛指代码块或程序处理逻辑
return:定义返回值

调用运行:可以带参数也可以不带
函数名()

补充:

1.编程语言中的函数与数学意义的函数是截然不同的俩个概念,编程语言中的函数是通过一个函数名封装好一串用来完成某一特定功能的逻辑,数学定义的函数就是一个等式,等式在传入因变量值x不同会得到一个结果y,这一点与编程语言中类似(也是传入一个参数,得到一个返回值),不同的是数学意义的函数,传入值相同,得到的结果必然相同且没有任何变量的修改(不修改状态),而编程语言中的函数传入的参数相同返回值可不一定相同且可以修改其他的全局变量值(因为一个函数a的执行可能依赖于另外一个函数b的结果,b可能得到不同结果,那即便是你给a传入相同的参数,那么a得到的结果也肯定不同)

2.函数式编程就是:先定义一个数学函数(数学建模),然后按照这个数学模型用编程语言去实现它。至于具体如何实现和这么做的好处,且看后续的函数式编程

总结使用函数的好处:

1.代码重用

2.保持一致性,易维护

3.可扩展性

过程定义:过程就是简单特殊没有返回值的函数

总结:当一个函数/过程没有使用return显示的定义返回值时,python解释器会隐式的返回None,

所以在python中即便是过程也可以算作函数。

总结:

返回值数=0:返回None

返回值数=1:返回object

返回值数>1:返回tuple

二、函数参数

#函数的参数分为形参和实参
#形参变量只有被调用时才分配内存单元,在调用结束时,即刻释放分配的所有内存单元,因此形参只在函数内部有效,函数调用结束返回主调用函数后,则不能再使用该形参变量
#实参可以是常量、变量、表达式、函数等,无论实参是何种类型的量,在进行函数调用时,他们必须要有确定的值,以便把这些值传给形参,因此应预先用赋值,输入等办法使参数获得确定值
def cals(x,y):# 《==形参
res=x**y
return res #函数遇到return,整个函数结束运行
a=999999
b=2
c=cals(a,b) #《==实参
print('c:',c)
v=cals(44444,55555)
print('v:',v)
#位置参数和关键字,(标准调用:实参与形参位置一一对应;关键字调用:位置无需固定)
def test(x,y,z):
print(x)
print(y)
print(z)
test(1,2,3) #标准调用
test(x=33,z=555,y=555)# 关键字调用
test(1,2,z=3)   #位置参数必须在关键字参数的左边
#默认参数
# def handle (x,type=None):
# print(x)
# print(type)
# handle('rrrr')
# handle('rrrr','sb')
# handle(x='rrrrrrr',type='rrrrrrrrr')
#参数组:非固定长度的参数,**字典,*列表
# def handle (x,*type):
# # print(x)
# print(type)
# # print(type[1])
# # handle('rrrr',333,4444,'ggggggggggg')
# handle(22,*['22','eee','ddd'])
# handle(1,*{'name':'wang'}) def handle(x,**type):      #关键字参数交给**type处理
print(x)
print(type)
handle(1,w=1,y=2)#实参名与形参名重复会报错

三、局部变量与全局变量

#全局变量
name='zs'
def change():
print(name)
change() #局部变量
name='zs'
def change():
name='最傻的'
print(name)
change() 前向变量
#正常
# def bar():
# print('from bar')
# def foo():
# print('from foo')
# bar()
# foo()
#正常
# def foo():
# print('from foo')
# bar()
# def bar():
# print('from bar')
# foo()
#报错
# def foo():
# print('from foo')
# bar()
# foo()
# def bar():
# print('from bar')
# #函数即变量,

四、递归

#递归
#递归特性
'''
1、必须有一个明确的结束条件
2、每进入更深一层递归时,问题规模相比上次递归都应有所减少
3、递归的效率不高,递归层次过多会导致栈溢出(在计算机当中,函数调用是通过栈(stack)这种数据结构实现的,每当进入一个函数调用,栈就会加一层栈帧。由于栈的大小不是无限的,所以递归调用的次数过多,会导致栈溢出)
'''
# def cal(n):
# print(n)
# if int(n/2)==0:
# print('result:',n)
# return n
# return cal(int(n/2))
#
# res1=cal(10)
# print('jjj',res1)
import time
person_list=['张帅','帅个','靓女','张鹏','小姐姐']
def ask_way(person_list):
print('-'*80)
if len(person_list)==0:
return ('无人知道')
person=person_list.pop(0)
if person=='张鹏':
return '%s说,在三生三世十里桃花村'%person
print('hi,%s靓女,敢问你认识张鹏大帅哥家在哪里吗嘛'%person)
print('%s回答道:我不知道,念你知道张鹏大帅哥,你等着,我帮你问问%s..'%(person,person_list[0]))
time.sleep(3)
res=ask_way(person_list)
return res ress=ask_way(person_list)
print(ress)
 


python__005的更多相关文章

随机推荐

  1. 从rc文件访问字符串

    有.rc文件,其中包含用于exe文件详细信息的版本,说明等. 如何获得在代码内使用的值?例如,要获取ProductName. IDI_ICON1 ICON DISCARDABLE "abc- ...

  2. spring cache 几个注解解释

    转自https://www.cnblogs.com/fashflying/p/6908028.html 从3.1开始,Spring引入了对Cache的支持.其使用方法和原理都类似于Spring对事务管 ...

  3. css文件分类

    简介 CSS(层叠样式表)是一门历史悠久的标记性语言,同 HTML 一道,被广泛应用于万维网(World Wide Web)中.HTML 主要负责文档结构的定义,CSS 负责文档表现形式或样式的定义. ...

  4. 阻止默认/冒泡事件(兼容ie)

    (1) 阻止默认事件 function(e){ if(e && e.preventDefault){ e.preventDefault(); }else{ //IE window.ev ...

  5. 在github新建一个项目里需要哪些文件及作用

    1.README.md文件 关于项目的介绍和使用方法. 2.  .gitignore文件 上传项目时不需要传的文件,最常用的就是“node_modules/",如下: 详细的介绍可以去git ...

  6. [深度学习] pytorch学习笔记(4)(Module类、实现Flatten类、Module类作用、数据增强)

    一.继承nn.Module类并自定义层 我们要利用pytorch提供的很多便利的方法,则需要将很多自定义操作封装成nn.Module类. 首先,简单实现一个Mylinear类: from torch ...

  7. 【杂题】[CodeForces 1172F] Nauuo and Bug【数据结构】【线段树】

    Description 给出一个长度为n的序列a和一个整数p 有m组询问,每组询问给出一个区间\([l,r]\) 你需要给出下面这个过程的结果 ans = 0 for i from l to r { ...

  8. Unity3D_(游戏)甜品消消乐01_游戏基础界面

    甜品消消乐游戏 (脚本源码在游戏UI设计最下方) 三消游戏,存在L型消除有一点小Bug,当甜品在饼干附近消除时会清除饼干 饼干作为游戏障碍物时不可移动的,多块饼干并排时会挡住甜品掉落 发现消除类游戏的 ...

  9. Reduce pandas memory size

    有关pandas存储的理论 简单又实用的pandas技巧:如何将内存占用降低90% 代码 Reducing DataFrame memory size by ~65% 上篇的改进 缓解pandas中D ...

  10. 笔记本电脑如何同时上内外网(通过usb外接网卡实现虚拟机连外网)

    我们这里达成的方式不是内外网切换,而是真正意义上的同时上内网和外网 原理: 通过构建虚拟机,利用usb外接网卡(某宝某东都有售,价格在50大洋左右)使虚机连接外网,然后开启虚拟机的unity模式 准备 ...