内置函数

  • callable() #判断是否能够被调用执行,可以调用返回True,例如函数和类
  • chr() #将ascii值转换为字符,例如print(chr(65) )输出为a
  • ord()#将字符转换为ascii值,例如print(ord('a')) 输出为97
  • chr和ord应用随机生成验证码
  • #随机生成数字和大写字母的验证码
    import random
    li = []
    for i in range(6):
    r = random.randrange(0,5)
    if r == 2 or r== 4:
    num = random.randrange(0,10)
    li.append(str(num))
    else:
    temp = random.randrange(65,91)
    c = chr(temp)
    li.append(c)
    resault = "".join(li)
    print(resault)
    #第二位和四位为数字
    # li = []
    # for i in range(6):
    # if i == 2 or i == 4:
    # num = random.randrange(0,10)
    # li.append(str(num))
    # else:
    # temp = random.randrange(65,91)
    # c = chr(temp)
    # li.append(c)
    # resault = "".join(li)
    # print(resault)
  • compile() #将字符串编译为python代码,执行python代码,接收代码或者字符串
  • s = 'print(123)'
    #编译,single,eval,exec
    #将字符串编译为python代码
    r = compile(s,"<string>","exec")
    #执行python代码
    exec (r)
    输出为
    123
  • exec() #执行python代码,无返回值
  • eval() #将字符串转换为表达式,并把结果计算出来,有返回值;ret = eval('7+8+9');print(ret) 输出为24
  • dir() #快速查看对象提供了哪些功能,print(dir(list))
  • help() #查看帮助信息,详细的使用说明,包括对象功能方法带的参数等print(help(list))
  • divmod() #接收2个参数,前一个参数对后一个参数求余操作,结果将整数和余数打印出来r = divmod(97,10);print(r)输出(9, 7)商9余7
  • isinstance() #判断对象是否为某一个类的实例,属于返回True否则返回False
  •  li = [1,2,3,4]
    resault = isinstance(li,list)
    print(resault)
    #输出
    True #如果li属于list类返回True
  • filer() #对筛选出来的结果进行函数操作,filter执行内部循环第二个参数,让每个循环元素执行函数,如果函数返回值为True表示元素合法;filter('函数','可迭代的对象')
  • #完全函数方式实现返回列表中大于22的元素
    def f1(a):
    resault = []
    for item in a:
    if item >22:
    resault.append(item)
    return resault
    l1 = [11,22,33,44,55]
    ret1 = f1(l1)
    print(ret1)
    #filer+函数返回列表中大于22的元素
    def f2(a):
    if a > 22:
    return True
    li = [11,22,44,33,66]
    ret = filter(f2,li)
    print(list(ret))
    #通过fileter+lamda表达式来实现
    l2 = [11,22,44,55,66]
    resault = filter(lambda a:a>33,l2)
    print(list(resault))
  • map() #批量将迭代对象中的元素进行操作,map('函数','可迭代对象(可以for循环的东西)');
  • #通过整个函数实现对列表中数据全部加100操作
    li = [11,22,33,44,55]
    def f1(args):
    resault = []
    for i in args:
    resault.append(100+i)
    return resault
    r = f1(li)
    print(r)
    #函数方式map使用形式
    li = [11,22,33,44,55]
    def f2(a):
    return a+100
    resault = map(f2,li)
    print(list(resault))
    #lambda方式map使用形式
    li = [11,22,33,44,55]
    resault = map(lambda a:a+100,li)
    print(list(resault)) #filter 函数返回True,将元素添加到结果中
    #map 将函数返回值添加到结果中
  • locals()#所有局部参数集合
  • globals() #所有全局变量参数集合
  • hash()#pyhon中存储字符串都是通过此函数计算的哈希值来存储的
  • len()#计算字符串的长度,py2中以默认字节来计算长度,py3中以默认字符来计算长度
  • #验证py3中输出情况
    s = "李杰"
    print(len(s))
    b = bytes(s,encoding='utf-8')
    print(len(b)) 2
    6
    #py3.5中循环汉字时候正常输出
    for i in '李杰':
    print(i)


    #py2.7中循环汉字时候出现乱码
    for i in '李杰':
    print(i)





  • max() #取参数中最大的值,参数值均为int类型数字
  • min()#取参数中最小的值
  • sum()#求和
  • pow() #求平方等价于** 例如2**10==pow(2,10)
  • reversed()#对参数中元素反向显示在列表中等价于list.reverse()
  • #li.reverse()与reversed(li)是等价的
    li = [11,22,1,3,5,2]
    li.reverse()#对列表顺序反向输出
    print(li) #[2, 5, 3, 1, 22, 11]
    print(list(reversed(li))) #[11, 22, 1, 3, 5, 2]
    #sort和sorted对列表中元素进行大小排序
    li = [11,22,1,3,5,2]
    li.sort()
    print(li) #sort表示对自己的列表操作 li2 = sorted(li)
    print(li2) #sorted表示作为一个新的列表排序
  • round() #四舍五入函数print(round(1.4)) 输出1
  • zip() #将多个列表合并为1个
  • #zip函数将三个列表进行了合并,当其中一个列表元素数量和其他列表元素个数不等时,新的列表以少的元素为准,不会将没有的元素列作为新的元素
    l1 = ['lily',11,22,33]
    l2 = ['is',11,22]
    l3 = ['a girl',11,22,33]
    r = zip(l1,l2,l3)
    print(list(r))
    #输出:
    [('lily', 'is', 'a girl'), (11, 11, 11), (22, 22, 22)] #对列表中元素进行join合并
    l1 = ['lily',11,22,33]
    l2 = ['is',11,22,33]
    l3 = ['a girl',11,22,33]
    r = zip(l1,l2,l3)
    temp = list(r)[0]
    ret = ' '.join(temp)
    print(ret)
    #输出:
    lily is a girl

函数相关--装饰器

用法:

  @+函数名

功能:

  1. 自动执行装饰器定义的函数并且将其下面的函数名当作参数传递
  2. 将装饰器定义函数的返回值,重复赋值给下面的函数

例子:

#定义一个简单装饰器
def outer(func):
def inner():
print('before')
func()
print('after')
return inner
@outer
def f1():
print('F1') #调用装饰器中的函数
import test #上面装饰器文件名称为test.py
test.f1()
#输出
before
F1
after

装饰器的应用登陆的练习

#!/usr/bin/env python
#-*- coding:utf-8 -*- LOGIN_USER = {'is_login':False} def outer(func):
def inner(*args,**kwargs):
if LOGIN_USER['is_login']:
r = func()
return r
else:
print("请登陆")
return inner def outer1(func):
def inner(*args, **kwargs):
if LOGIN_USER['is_login'] and LOGIN_USER['user_type'] == 2:
r = func()
return r
else:
print("请登录,或者权限不够")
return inner @outer1
def order():
print('欢迎%s登录'%LOGIN_USER['current_user']) @outer
def changepwd():
print('欢迎%s登录' % LOGIN_USER['current_user']) @outer
def manager():
print('欢迎%s登录' % LOGIN_USER['current_user']) def login(user,pwd):
if user == 'ljb' and pwd == '':
LOGIN_USER['is_login'] = True
LOGIN_USER['current_user'] = user
manager() def main():
while True:
inp = input("1后台管理:2,登录")
if inp == '':
manager()
elif inp == '':
username = input("请输入用户名:")
pwd = input("请输入密码:")
login(username,pwd) main()

python基础(四)的更多相关文章

  1. Python 基础 四 面向对象杂谈

    Python 基础  四  面向对象杂谈 一.isinstance(obj,cls) 与issubcalss(sub,super) isinstance(obj,cls)检查是否obj是否是类 cls ...

  2. Python基础(四) 基础拾遗、数据类型进阶

    一.基础拾遗 (一).变量作用域 外层变量,可以被内层变量直接调用:内层变量,无法被外层变量使用.这种说法在其它语言中适用,在python中除了栈以外,正常的变量作用域,只要执行声明并在内存中存在,该 ...

  3. 【笔记】Python基础四:迭代器和生成器

    一,迭代器协议和for循环工作机制 (一),迭代器协议 1,迭代器协议:对象必须提供一个next方法,执行该方法要么返回迭代中的下一项,要么就引起一个stopiteration异常,以终止迭代(只能往 ...

  4. python 基础(四) 函数

    函数 一.什么是函数? 函数是可以实现一些特定功能的 小方法 或者是小程序 优点: 提高 了代码的后期维护 增加了代码的重复使用率 减少了代码量 提高了代码可读性 二.函数的定义 使用 def关键+函 ...

  5. python基础四(json\os\sys\random\string模块、文件、函数)

    一.文件的修改 文件修改的两种思路: 1.把文件内容拿出来,做修改后,清空原来文件的内容,然后把修改过的文件内容重新写进去. 步骤: 1.打开文件:f=open('file','a+')  #必须用a ...

  6. Python基础四

    1. 集合 主要作用: 去重 关系测试, 交集\差集\并集\反向(对称)差集   2. 元组 只读列表,只有count, index 2 个方法 作用:如果一些数据不想被人修改, 可以存成元组,比如身 ...

  7. python基础(四)运算

    作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! Python的运算符和其他语言类似 (我们暂时只了解这些运算符的基本用法,方便我们 ...

  8. python基础四-文件读取

    文件读取 open()接受一个参数:要打开的文件名, 并返回一个表示文件的对象, 存储到后面的变量中 python会在当前执行文件所在目录查找 可以使用绝对路径, 在linux中使用'/', 在win ...

  9. Python基础(四) socket简单通讯

    socket:我们通常听过的套接字: 服务端: 1.创建socket对象 2.bing 绑定ip及端口 3.对该端口进行监听 4.消息阻塞(等待客户端消息) 客户端: 1.创建socket对象 2.连 ...

  10. python基础(四)字符串处理

    字符串处理 msg = 'my name is sylar' capitalize方法,将字符串的首字母大写 print 'capitalize方法:', msg.capitalize() swapc ...

随机推荐

  1. core-site.xml配置项:hadoop.tmp.dir

    hadoop.tmp.dir:A base for other temporary directories. 集群运行后,修改该配置项后,发现类似错误: -- ::, INFO org.apache. ...

  2. illegal to have multiple occurrences of contentType with different values (old: text/html; charset=UTF-8, new: text/html; charset=utf-8)

    问题描述: 在a.jsp通过<%@ include file="b.jsp" %> 的方式引入b.jsp,但是报了标题的中的错误, 问题原因: 在a.jsp的头部: & ...

  3. Android 使用BroadcastReceiver的几种方法

    发送自定义广播 全局广播 发送标准广播 1.定义广播接收器.(在发送广播前,需要先定义一个广播接收器,不然发了也是白发) public class MyBroadcastReceiver extend ...

  4. Android url中文编码问题

    最近项目遇见一个很奇葩问题,关于URL问题,项目中加载图片,图片的URL含有中文,但是,我的手机可以加载,没问题,同事也都可以,但是测试手机却不可以,加载失败,找到问题,就是URL含有中文问题. 解决 ...

  5. YII学习,实现基于数据库的后台登录,用户体系.

    上次研究Yii框架写到了要完成用户登陆系统.这次接着上次的写. 参考官方权威指南和参考手册,外加各种博客文章.历尽千辛万苦,数遍天上滴星星.完成了后台用户登录.这里用到了YII框架的 CUserIde ...

  6. SQL Server 主动防止阻塞的 1 方法

    方法 1. set lock_timeout 5000;  这里设置超时为5秒; 例子: 连接A begin tran             update dbo.TestTable        ...

  7. Unix/Linux环境C编程入门教程(29) 内存操作那些事儿

    函数介绍 memccpy(拷贝内存内容) 相关函数 bcopy,memcpy,memmove,strcpy,strncpy 表头文件 #include<string.h> 定义函数 voi ...

  8. 学习笔记之--java EE 环境的搭建

    一.前期准备.(apache-maven-3.0.5.apache-tomcat-7.0.23-windows-x86.eclipse-jee-kepler-SR1-win32.jdk-7u45-wi ...

  9. Singleton 单例模式 泛型 窗体控制

    MDI子窗体 控制单例 /// <summary> /// 单例提供者 /// </summary> /// <typeparam name="T"& ...

  10. C编程技巧

    1,attempted assighnment to literal if (i == 3) { //codes } else if (4 == 4); 2,引用数组元素相当于对指针加上偏移量的引用 ...