python函数

python利用ConfigParser读写配置文件

坚强是说给别人听的谎言 提交于 2020-04-06 02:49:11
ConfigParser 是Python自带的模块, 用来读写配置文件, 用法非常简单。 配置文件的格式是: []包含的叫section, section 下有option=value这样的键值 配置文件格式如下: [N1] name = Anne age = 28 [N2] name = Andy age = 32 我试过的可以支持的配置文件格式有ini yaml xml txt 代码如下:(python3中该模块更名为configparser) # coding: UTF-8 #兼容中文字符,如果没有这句,程序中有中文字符时,运行会报错 import ConfigParser conf = ConfigParser.ConfigParser() #定义类对象 #这是相对路径的写法,如果是绝对路径要用绝对路径的方式,绝对路径的移至性更好 #conf.read('conf.yaml') conf.read('User.ini') #类函数调用 #conf.read('try.xml') #用xml也是可以跑通的,就是xml里面一堆浪线 #conf.set("N1","name","Errin") #设置section中的option值,INT是section,gender是option,woman是option的值 conf.set("N1","gender","woman")

小白入门Python,必看的一些基础材料

…衆ロ難τιáo~ 提交于 2020-04-05 23:22:47
PYPL 是非常流行的参考指标,其榜单数据的排名均是根据榜单对象在 Google 上相关的搜索频率进行统计排名,原始数据来自 Google Trends,也就是说某项语言或者某款 IDE 在 Google 上搜索频率越高,表示它越受欢迎。 Python是一门面向对象的解释型语言,在这20多年的时间里,Python的各种生态越来越齐备,再加上其自身简洁的语法,这些年来Python的使用量逐年上升。 在2019年11 月份PYPL的榜单中显示,排名第一的Python语言已赶超第二名10个百分点: 那,发展如此迅猛的Python你又了解多少呢?Python的一些基础语法,你又知道多少呢? 不过呀,知不知道没有关系,只要你想知道就行;接下来,从基础信息开始了解,再一起跟着大佬入门Python! 一定记住:最好的开始在当下,最好的收获是坚持! 入门Python,必看基础材料 1、python版本的选择 选择python3.5以上版本进行学习:因为python2到2020年官方将停止维护,并且3.5版本之前的python3性能上还有所缺陷,这里推荐 python3.6与python3.7版本。 2、独特的字符串表达式 Python使用'(单引号)和"(双引号)来表示字符串。与Perl、Unix Shell语言或者Ruby、Groovy等语言不一样,两种符号作用相同。一般地

python 反转列表的3种方式

隐身守侯 提交于 2020-04-05 22:55:42
转载自:https://blog.csdn.net/bookaswine/article/details/42468735 方式一:使用reversed()函数 a=[ 1, 2, 3, 4, 5, 6, 7, 8, 9] b=list(reversed(a)) print b 注意:reversed()函数返回的是一个迭代器,而不是一个List,需要再使用List函数转换一下。 方式二:使用sorted() a=[ 1, 2, 3, 4, 5, 6, 7, 8, 9] c=sorted(a,cmp= None, key= None, reverse= True) print c 注意:其中reverse=True是按降序排列,reverse=False是按照升序排列 方式三: 使用分片 a=[ 1, 2, 3, 4, 5, 6, 7, 8, 9] d=a[::- 1] print d 注意:其中[::-1]代表从后向前取值,每次步进值为1 来源: https://www.cnblogs.com/star12111/p/8881939.html

Python执行js之PyexecJs

北慕城南 提交于 2020-04-05 21:03:40
利用Python执行js 爬虫中会经常碰到JS加密,当我们找到他加密的JS代码之后我们需要获取它的返回值,python虽然可以模仿js写一个python版本的加密,但是这样有点费时间,也有点费头发~ 安装PyexecJS 注意:这块需要一个执行js的环境,我本地装的是NodeJS pip install pyexecjs 执行JS 举一个例子如下: import execjs js = execjs.compile(''' function genpvid() { var a = (new Date).getTime(); var b = "xxxxxxxxxxxx4xxxyxxxxxxxxxxxxxxx".replace(/[xy]/g, function(b) { var c = (a + 16 * Math.random()) % 16 | 0; return a = Math.floor(a / 16), ("x" == b ? c : 3 & c | 8).toString(16) }); return b }''') result = js.call('genpvid') #call里面的参数第一个是js函数名称,如果要执行的js有参数,后面跟上参数就可以,如js.call('getpvid',2,3)这样 print(result) 结尾

10 Day Python之装饰器

删除回忆录丶 提交于 2020-04-05 18:14:32
装饰器 1、开放封闭原则 开放:对于添加新功能是开放的 封闭:对于修改原功能是封闭的 2、装饰器的作用 在不更改原函数调用方式的前提下对原函数添加新功能 3、装饰器 1 # ①引子——为什么要有装饰器 2 为了在不修改原函数的基础上为函数添加新功能,产生了装饰器 3 4 # ②简单装饰器 5 def deco(f): 6 def wrapper(): 7 """原函数前添加的功能""" 8 f() 9 """原函数后添加的功能""" 10 return wrapper 11 12 def func(): 13 print('这是原函数!') 14 15 func = deco(func) 16 func() 17 18 # ③装饰器的语法糖 19 def deco(f): 20 def wrapper(): 21 """原函数前添加的功能""" 22 f() 23 """原函数后添加的功能""" 24 return wrapper 25 26 @deco # ——>此处效果等同于 func = deco(func) 27 def func(): 28 print('这是原函数') 29 30 func() 31 32 # ④带返回值的装饰器 33 def deco(f): 34 def wrapper(): 35 """原函数前添加的功能""" 36 res = f() 37 ""

利用Python实现SQL自动化

风格不统一 提交于 2020-04-05 17:37:46
笔者在工作中经常要使用SQL,其不乏存在恼人的细微差异和种种限制,但说到底,它是数据行业的基石。因此,对于每一位数据领域的工作者,SQL都是不可或缺的。精通SQL意义非凡。 SQL是很不错,但怎么能仅满足于“不错”呢?为什么不进一步操作SQL呢? 陈述性语句会诱发SQL限制的发生,就是说,向SQL寻求数据,SQL会在特定数据库找寻并反馈。对于许多数据提取或简单的数据操作任务来说,这已经足够了。 但如果有更多需求怎么办? 本文将为你展示如何操作。 从基础开始 import pyodbc from datetime import datetime classSql: def__init__(self, database, server="XXVIR00012,55000"): # here we are telling python what to connect to (our SQL Server) self.cnxn = pyodbc.connect("Driver={SQL Server Native Client 11.0};" "Server="+server+";" "Database="+database+";" "Trusted_Connection=yes;") # initialise query attribute self.query ="-- {}\n\n-

Python:对输入的单词进行字典序排序输出

生来就可爱ヽ(ⅴ<●) 提交于 2020-04-05 14:59:04
题目描述: 对输入的单词进行字典序排序输出,字典序定义: 1.单词中字母比较不区分大小写,两个单词先以第一个字母作为排序的基准, 如果第一个字母相同,就用第二个字母为基准, 如果第二个字母相同就以第三个字母为基准。 依此类推,如果到某个字母不相同,字母顺序在前的那个单词顺序在前。 2.当一个短单词和一个长单词的开头部分都相同(即短单词是长单词从首字母开始的一部分),短单词顺序在前。 3.字母大小写不同的相同单词,只输出一次。 输入描述:不超过255个字符中,单词间用空格进行分隔,为简单起见,单词不包含连字符,无其它标点符号。 输出描述:输出排序后的单词,单词之间用空格隔开(最后不带空格),重复的单词只输出一次。 解答: import re def zdx(sword): l = [] temp = sword.split(" ") for i in temp: if i.lower() not in [j.lower() for j in l]: l.append(i) return " ".join(sorted(l, key=str.lower)) while True: s = input("请输入用空格进行分隔的单词:") if len(s) <= 255: p = re.compile(r"^[a-zA-Z\s]{0,255}$") if p.match(s):

Python——assert(断言函数)

随声附和 提交于 2020-04-04 21:25:55
一、断言函数的作用   python assert断言是声明其布尔值必须为真的判定,如果发生异常就说明表达示为假。可以理解assert断言语句为raise-if-not,用来测试表示式,其返回值为假,就会触发异常。 二、常用格式   assert 1==1   assert 2+2==2*2   assert len(['my boy',12])<10   assert range(4)==[0,1,2,3] 三、如何为assert断言语句添加异常参数   assert 表达式 [, 参数]   assert len(lists) >=5,'列表元素个数小于5' 来源: https://www.cnblogs.com/cxys85/p/10206959.html

Python小记11

邮差的信 提交于 2020-04-04 17:51:44
接 https://www.cnblogs.com/airlinp/p/12612680.html 9.3 函数返回值 return,将函数内部代码的执行结果进行返回。 # 求和函数 def sum_result(num1, num2): num_resulet = num1 + num2 return num_resulet a = int(input("请输入第一个数字:")) b = int(input("请输入第二个数字:")) result = sum_result(a, b) print(result) 由上述代码可知: 对9.2.1小节中代码,增加了result变量用于存储函数返回值,return关键字用来返回函数内的计算结果; return只是在程序内进行了一个返回输出,需要使用print将结果输出到屏幕,才能看到返回值; 由上图可知: 加入return返回值关键字后,相较于9.2.1的改进版又有一次简化改进,函数的处理结果可以更方便的进行调用; return代表着函数的结束,在return下方不再增加代码,如果隔行则属于函数外的代码; 9.4 函数嵌套调用 一个函数里又调用了另一个函数。 函数嵌套调用中,Python执行流程遵循从上至下的顺序。 做一个简单函数嵌套调用练习: def test1(): print("*" * 10) def test2():

对<Effective Python: 编写高质量Python代码的59个有效方法>中知识点的总结和扩展

与世无争的帅哥 提交于 2020-04-04 16:50:59
对<Effective Python: 编写高质量Python代码的59个有效方法>中知识点的总结和扩展 《Effective Python》一书结合Python的语言特性,对代码规范进行了详细总结,是一本非常不错的Python实操指南。但我在阅读的过程中发现有些地方仅仅是告知读者“怎么做”,但是具体“为什么”不是很深入。下面内容是我对这些知识点的总结和相应原理的扩展。 (如有不准确之处欢迎指正) Python版本问题,略。 关于PEP8:这是Python代码风格的一些规范,感兴趣的同学可以自行了解。 在Python3中,bytes和str是两种截然不同的类型: bytes是计算机原始的二进制格式,而str是包含Unicode字符的,开发者不能以+号之类的操作符直接对它们两个进行混合操作。 实际上,它们互相之间是编码(encode)与解码(decode)的关系。 >>> s = "哇哈" >>> b = bytes(s,encoding="utf-8") # encode >>> print(s) 哇哈 >>> print(b) b'\xe5\x93\x87\xe5\x93\x88' 可以看到,s是str类型,返回的依旧是人类能懂的文字,而b则返回的实际上是6个16进制,每一个代表一字节。 注意,在bytes函数中使用了encoding参数并且赋值"utf-8"。为什么呢