Home >  > 常用Python代码及花式写法(函数调用自身)

常用Python代码及花式写法(函数调用自身)

0

一、urllib

from urllib.request import urlopen as  uReq
from bs4 import BeautifulSoup as soup

my_url = "https://www.newegg.com/Video-Cards-Video-Devices/Category/ID-38?Tpk=graphic%20card"
# opening up connection, grabbing the page 
uClient = uReq(my_url)
page_html = uClient.read()
uClient.close()
page_soup = soup(page_html,"html.parser")
print(page_soup.h1)

二、异常处理
使用下面的方法打印出错信息:

a  = "yes"
for i in range(1,4):
    try:
    	x = a+1
    except Exception as e:
        print(e)
        # print("error message")

try的工作原理是,当开始一个try语句后,python就在当前程序的上下文中作标记,这样当异常出现时就可以回到这里,try子句先执行,接下来会发生什么依赖于执行时是否出现异常。

如果当try后的语句执行时发生异常,python就跳回到try并执行第一个匹配该异常的except子句,异常处理完毕,控制流就通过整个try语句(除非在处理异常时又引发新的异常)。

如果在try后的语句里发生了异常,却没有匹配的except子句,异常将被递交到上层的try,或者到程序的最上层(这样将结束程序,并打印缺省的出错信息)。

如果在try子句执行时没有发生异常,python将执行else语句后的语句(如果有else的话),然后控制流通过整个try语句。

三、读取CSV文件到SQlite

import pandas
import csv, sqlite3
conn= sqlite3.connect("dbname.db")
df = pandas.read_csv('btc2017_new2.csv')
df.to_sql('tablename', conn, if_exists='append', index=False)
print('ok')

四、读取txt

try:
    f = open("guessword.txt")
    words = f.read().splitlines()
    f.close
excetp IOError:
    print("Cannot find the 'gusssword.txt'")
    exit()

五、读取文件夹下面的文件(使用glob)

filesIndex = 1 
files = glob.glob("*.nille")
for filename in files:
    print(str(filesIndex) + "."+ filename)
    filesIndex = filesIndex + 1

六、函数内部调用自己

import threading
import time

def fun_timer():
    print('hello timer')
    global timer
    #重复构造定时器
    timer = threading.Timer(5.8,fun_timer)
    timer.start()
#定时调度
timer = threading.Timer(2,fun_timer)
timer.start()


# 50秒后停止定时器
time.sleep(50)
timer.cancel()

另一个:

from threading import Timer
def hello(): 
    print ("hello, world") 
    Timer(2.0, hello) .start()

t = Timer(2.0, hello) 
t.start()

七、导入相同目录下的其他python文件

from .chan import *

命令式编程关键字: def if else for

函数式编程:关键字 map reduce filter三个函数,lambda算子

八、列表中的数值求和

from functools import reduce

list_x = [1,2,3,4,5,6,7,8]

r = reduce(lambda x,y:x+y,list_x)

print(r)

结果为36

九、filter

from functools import reduce

list_x = [1,0,1,0,5,0,7,8]

r = filter(lambda x: True if x ==1 else False,list_x)
print(list(r))

结果为[1, 1]

可以简写为:r = filter(lambda x: x,list_x)

十、装饰器

import time

def f1():
	print(time.time())
	print("This is a function")

f1()

如果要给上面一百个函数添加时间的功能呢?

import time

def f1():
	# print(time.time())
	print("This is a function")

# f1()


def print_current_time(func):
	print(time.time())
	func()


print_current_time(f1)

十一、其他
1.列表生成式
[stock for stock in tohold if stock not in context.portfolio.positions ]

本文暂无标签

发表评论

*

*