内置函数练习

编写 sql 查询语句功能

文件内容:

1,Eva,22,13651054608,IT
2,Vera,23,13304320533,Tearcher
3,Renault,25,1333235322,IT

实现:
装饰器登录
select name, age where age>22
select * where age>22
select * where phone like 133
select * where occ=IT(字符串比较未实现,与年龄的数字比较有冲突 待解决)

#读文件
def dir():
with open('d:/py/info.txt',encoding='utf-8')as f:
for line in f:
line = line.strip().split(',')
yield line d =dir() #实现显示
def view(option,lis):
dic = {'id':lis[0],'name':lis[1],'age':lis[2],'phone':lis[3],'occ':lis[4]}
option = option.split().pop(1).split(',')
for i in option:
if i in dic:
print(dic[i],end=' ')
elif i == '*':
print(lis)
else:
print('输入字段有误') # sel 判断
def judge(option,condition):
if '>' in condition:
a,b = condition.split('>')
for lis in dir():
if int(d.__next__()[2]) > int(b):
view(option,lis)
elif '<' in condition:
a,b = condition.split('<')
for lis in dir():
if int(d.__next__()[2]) < int(b):
view(option,lis)
elif '=' in condition:
a,b = condition.split('=')
for lis in dir():
if int(d.__next__()[2]) == int(b):
view(option,lis) #实现 like 查找功能
def like(s):
if 'like' in s and '*' in s:
val,con = s.split('like')
val = val.split().pop().strip()
con = con.strip()
for lis in dir():
if con in d.__next__()[3]:
print(lis) #实现登录
def login(f):
def inner():
use = input('账号 >>>')
pwd = input('密码 >>>')
if use == 'ysg' and pwd == '':
ret = f()
return ret
else:
print('登录失败')
return inner #实现 select(主函数)
@login
def sel():
s = input('输入语句 >>>')
#s = 'select name,age where age>22'
option,condition = s.split('where')
condition = condition.strip()
#strs(s) #实现字符串比较的功能
like(s) #实现 like 查找功能
judge(option,condition) #实现数字比较的功能 sel()

面试题:阅读代码,说出输出结果

def extendList(val,list=[]):
list.append(val)
return list
list = extendList(10)
list2 = extendList(123,[])
list3 = extendList('a') print("list = %s"%list)
print("list2 = %s"%list2)
print("list3 = %s"%list3) #结果
list = [10, 'a']
list2 = [123]
list3 = [10, 'a']

day 15 - 2 内置函数练习的更多相关文章

  1. day 15 - 1 内置函数

    内置函数 作用域相关 locals() globals() #这两组开始容易搞混 print(locals()) #返回本地作用域中的所有名字 print(globals()) #返回全局作用域中的所 ...

  2. day15,内置函数一

    1,复习,如何从生成器里面取值,next(每次取一个值),send(不可以用在第一个,取下一个的时候,给上一个地方传一个值),for(没有break会一直取,直到取完),强制转换(会一次性把数据加载到 ...

  3. python语法基础-函数-内置函数和匿名函数-长期维护

    ##################     内置函数        #######################  """ 一共是 68个内置函数: 反射相关的内置函 ...

  4. Learning-Python【15】:内置函数

    截止到Python版本3.6.2,一共为我们提供了68个内置函数.它们就是Python提供的直接可以拿来使用的所有函数. 这个表的顺序是按照首字母的排列顺序来的,都混乱的堆在一起.比如,oct和bin ...

  5. 十五. Python基础(15)--内置函数-1

    十五. Python基础(15)--内置函数-1 1 ● eval(), exec(), compile() 执行字符串数据类型的python代码 检测#import os 'import' in c ...

  6. python 基础篇 15 内置函数和匿名函数

    ------------------------>>>>>>>>>>>>>>>内置函数<<< ...

  7. Python学习进程(15)常用内置函数

        本节介绍Python的一些常用的内置函数.     (1)cmp(x, y): cmp()函数比较 x 和 y 两个对象,并根据比较结果返回一个整数,如果 x<y,则返回-1:如果x&g ...

  8. day11 - 15(装饰器、生成器、迭代器、内置函数、推导式)

    day11:装饰器(装饰器形成.装饰器作用.@语法糖.原则.固定模式) 装饰器形成:最简单的.有返回值的.有一个参数的.万能参数 函数起的作用:装饰器用于在已经完成的函数前后增加功能 语法糖:使代码变 ...

  9. Python Day 15 递归、匿名函数、内置函数

    阅读目录 内容回顾 生成器的send方法 递归 匿名函数 内置函数 ##内容回顾 #1.带参装饰器 - 自定义 | wraps def wrap(info) def outer1(func): fro ...

随机推荐

  1. 文本分类实战(五)—— Bi-LSTM + Attention模型

    1 大纲概述 文本分类这个系列将会有十篇左右,包括基于word2vec预训练的文本分类,与及基于最新的预训练模型(ELMo,BERT等)的文本分类.总共有以下系列: word2vec预训练词向量 te ...

  2. 袁创:使用反射动态调用ActiveX控件

    ■■■■前言 目前的基于.NET平台的软件研发中仍然存在大量的对COM及ActiveX控件的调用.使用C#调用ActiveX控件时一般是使用vs.net工具自动生成的互操作性程序集.这种方法操作简单, ...

  3. java异常处理规范

    异常处理的优势[存在意义]:异常检测者有检测出异常的能力,但不知道在出现该异常的情况下应该怎么处理.故库方法一般会抛出异常给调用者来处理.所以总结而言,异常处理的优势就是,将处理错误(调用者处理)从检 ...

  4. 定位z-index

    1.z-index數值大的元素覆蓋數值小的元素,z-index需要在標明定位方式的元素有效: 3.父元素和子元素 ,如果父元素的index有效,子元素覆蓋父元素:但父元素的z-index失效(未設置定 ...

  5. vs2017开发IOS(vs2017 xamarin 连接mac)

    这两天突然记起巨软的Visual Studio 2017 好像有说可以用C#开发IOS和Android应用,所以就自己去尝试了下生成过程. 相对与IOS来说,Android的生成过程还是比较容易的没有 ...

  6. [模板] 最近公共祖先/lca

    简介 最近公共祖先 \(lca(a,b)\) 指的是a到根的路径和b到n的路径的深度最大的公共点. 定理. 以 \(r\) 为根的树上的路径 \((a,b) = (r,a) + (r,b) - 2 * ...

  7. python之模块、包的导入过程和开发规范

    摘要:导入模块.导入包.编程规范 以My_module为例,My_module的代码如下: __all__ = ['name','read'] print('in mymodule') name = ...

  8. 线程池、进程池(concurrent.futures模块)和协程

    一.线程池 1.concurrent.futures模块 介绍 concurrent.futures模块提供了高度封装的异步调用接口 ThreadPoolExecutor:线程池,提供异步调用 Pro ...

  9. 作业二:Git的安装与使用

    作业的要求来自于:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/2097 分布式版本控制系统Git的安装与使用 1.下载安装配置用户名 ...

  10. 洛谷P1608路径统计

    题目 这个提示一个简单的最短路计数,除了用数组存上最短路的个数的做法以外,还有可以在得出最短路之后,搜索加剪枝的方法来通过该题. 可以反向搜索用A*的方法来通过,但是这个题的去重十分的恶心,需要一些玄 ...