文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

python(3)模块、函数式 、三元运

2023-01-31 00:54

关注


一、模块和模块的常用方法

__name__

判断是否为主文件

>>> print __name__   #判断是否是主文件,如果是主文件就返回_main_
__main__

__file__

返回当前.py文件的路径

cat /root/1.py
print __file__
测试:python 1.py 
/root/1.py

__doc__

对模块的一个描述

二、函数

简单函数测试

cat 2.py
#!/bin/env python 
def  bro():                #定义函数名为bro
    print  'hello'
    heo()                #调用hro函数
def  hro():                #定义函数名为hro
    print 'world'
bro()                    #执行bro函数
测试:python 2.py
hello
world

1.概念:

·在Python中采用def关键字进行函数的定义

·函数的参数分为普通参数,默认参数,指定参数

·函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段

2.格式

def 函数名(参数列表): 
    函数体

3.实例:

 (1)定义函数并调用

代码:
def foo(name):           #定义name为形参
   print name,'去砍柴'      #打印变量,和动作
foo('张三')            #执行函数,括号内为实参
foo('赵四')
结果:
张三 去砍柴
赵四 去砍柴

  (2)用函数写登陆小程序

代码:
#定义函数
def login(username):          #username这里为形参
    if username == 'aaa':    
        print 'ok'
    else:
        print 'no'
#执行函数       
user = raw_input('请输入用户名') 
login(user)               #执行函数

返回值:根据返回值做相应的操作 

1.实例

 (1)根据返回值做相应操作 

代码
#定义函数
def login(username):         
    if username == 'aaa':      #判断用户名是否为aaa
        return 'ok'        #如果是aaa,则返回值为'ok'
    else:
        return 'no'        #否则返回值为'no'  
#调用函数    
user = raw_input('请输入用户米:')
res = login(user)             #接受返回值,定义执行函数的过程为res,res随便写
if  res == 'ok':            #如果返回值是OK
    print '成功'               
else:                    #否则
    print '失败'

函数的默认参数:定义默认参数,如果下面调用函数时不指定参数,默认就是这个参数,默认参数可以无限定义

1.实例:

 (1)定义两个参数和一个默认参数     

代码:               
#定义函数
def foo(name,action='去砍柴'):   #第一个参数为内容,第二个参数的默认参数
    print name,action
#调用函数
foo('zhangsan')           #调用函数,输入第一个参数为zhangsan
foo('lisi','去吃饭')         #调用函数,输入一个参数和第二个参数
结果:
zhangsan 去砍柴
lisi 去吃饭

 (2)定义函数,打印多个传参         #把所有参数封装成列表或者序列

代码:
#定义函数
def  show(*arg):          #加*是所有的意思
    for item in arg:      #这里是随便定义一个,也可以写别的
        print item
#调用函数
show('zhangsan','lisi')
结果:
zhangsan
lisi

(3)定义函数,打印多个传参        #把所有参数封装成字典,得加个字典

代码
#定义函数
def  show(**kargs):
    for item in kargs.items():
        print item
#调用函数
show(name='zhangsan',age='lisi')
结果:
('age', 'lisi')
('name', 'zhangsan')

(4)定义函数,传参字典,并打印

代码:
#定义函数
def  show(**kargs):
    for item in kargs.items():
        print item
#调用函数
usr_dict = {'k1':123,'k2':456}
show(**usr_dict)                     #传参字典必须加两个*
结果:
('k2', 456)
('k1', 123)

三、三元运算

1.举例:

 (1)如果1>3,就把gt赋值给result,否则把lt赋值给result

代码
result =  'gt'  if 1>3  else  'lt'
print resule
结果:
lt

四、lambda

用途:比较简单的函数定义

举例:

 (1)

代码:
temp = lambda x,y:x+y    #第一个x,y是参数,第二个x+y表示两个参数相加
print temp(4,4)          #4+4=8,temp负责接受参数
结果:
8

五、序列化和json

序列化:把一个对象(列表、字典等)以python特殊二进制的方式加密一下,这个过程叫做序列化

     把一个对象序列化之后还可以反序列化

1.举例:

 (1)把一个list转成str

语法:pickle.dumps(obj)

代码
import pickle 
a = ['zhangsan',11,22,'lisi']
dumpsed = pickle.dumps(a)
print dumpsed 
print type(a)
结果
(lp0
S'zhangsan'
p1
aI11
aI22
aS'lisi'
p2
a.
<type 'list'>

 (2)把str转回list

语法:pickle.loads(str)

代码
import pickle 
a = ['zhangsan',11,22,'lisi']
dumpsed = pickle.dumps(a)         #a是list,转成str,赋值给dumpsed
loadsed = pickle.loads(dumpsed)   #dumpsed是str转成list,赋值给loadsed 
print loadsed 
print  type(loadsed)
结果
['zhangsan', 11, 22, 'lisi']
<type 'list'>

 (3)把list转成str并存到指定文件中,不打印

代码:
import pickle 
a = ['zhangsan',11,22,'lisi']     
pickle.dump(a,open('D:/temp.pk','w'))
结果
打开D:/temp.pk 
(lp0
S'zhangsan'
p1
aI11
aI22
aS'lisi'
p2
a.

  (4)把文件中的str转成list,并打印

代码
import pickle 
result = pickle.load(open('D:/temp.pk','r'))  打开一个文件并把str转成list赋值给result
print  result 
print type(result)
结果
['zhangsan', 11, 22, 'lisi']
<type 'list'>

六、正则表达式

1.正则表达式是re模块

(1)re.match:从开头开始匹配,如果开头没有就不继续向下匹配

代码
import re
a = re.match('\d+','123abc123')     #‘\d+’是匹配数字的意思,后边是字符串
print a.group()              #.group是把结果拿出来(这里是匹配到的123)
结果
123

(2)re.search:从整个字符串开始匹配,只要有符合就OK,就不继续往下匹配

代码
import re
a = re.search('\d+','456abc123')
print a.group()
结果
456

(3)re.findall:找出所有匹配的,不想match和search找到一个匹配的之后就不往下找

代码
import re
a = re.findall('\d+','456abc123def789')
print a
结果
['456', '123', '789']

(4)re.compile:先编译,然后利用findall查找,跟findall效果一样,但效率高

代码
import re
a = re.compile('\d+')
print a.findall('456abc123def789')
结果
['456', '123', '789']

2.正则表达式常用格式

字符:

\d:数字

\w:‘_’, ‘-’,等字符

\t:制表符

.:所有字符

次数:

*:大于等于0

+:大于等于1

?:0或者1

{m}:次数,比如让a出现6次

{m,n}:范围,比如出现3-5次之间的

七、time模块

打印当前时间:

代码
import time
print time.strftime('%Y-%m-%d ')
结果
2015-12-22






阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯