1、局部变量->全局变量
def func():
a=1
print(a)
global b
b=2
print(b)
func()
print(b)
global b=2,这样写是错误的。
2、# [python 从外部获取传入的参数]
(https://www.cnblogs.com/juan-F/p/9707467.html)
import sys #引入模块
str = sys.argv[1]
print str
Python中如何获得当前所执行的脚本的名字:
sys.argv[0]是传入的参数,通过解析,可以得到当前python脚本的文件名。
python获取函数参数个数的方法(https://blog.csdn.net/Wu_Victor/article/details/84334814)
def sum(a,b):
return(a+b)
print(sum.code.co_argcount)
输出的函数参数个数
print(sum.code.co_varnames)
('a', 'b')
这里会输出函数用到的所有变量名,不只是参数名
import sys模块:
len(sys.argv)参数个数
sys.argv[0]程序名
sys.argv[1]第一个参数
sys.argv[1:]是所有参数
3、python 中time.time()获取到的是从1970-1-1 00:00:00 到现在的秒数(小数位还有6位)。
需要获取毫秒数的时候:
import time
int(time.time()*1000)
4、访问字典里的值
把相应的键放入熟悉的方括弧,如下实例:
!/usr/bin/python
dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}
print "dict['Name']: ", dict['Name']
7、创建多层目录
import os
dirs = '/Users/joseph/work/python/'
if not os.path.exists(dirs):
os.makedirs(dirs)
判断是否是文件:
os.path.isfile("abc")
8、 sleep()方法
time.sleep(1) # 休眠1秒
9、bytes转字符串
b=b'\xe9\x80\x86\xe7\x81\xab'
string=str(b,'utf-8')
print(string)
10、# [python读文件指定行的数据]
import linecache
print linecache.getline('url.txt',2)
11、# 常用终止python程序方法
方法1:采用sys.exit(0)正常终止程序,从图中可以看到,程序终止后shell运行不受影响。
方法2:采用os._exit(0)关闭整个shell,从图中看到,调用sys._exit(0)后整个shell都重启了(RESTART Shell)。
12、os.system(cmd)的返回值。
如果执行成功,那么会返回0,表示命令执行成功。
coding = utf-8
import os
path = '/root/Downloads/dir/'
if os.system("ls {}".format(path)) == 0:
print("return 0 represent success!")
13、# python调用sqlite
import sqlite3
cx = sqlite3.connect("text");
创建游标
cu = cx.cursor()
cu.execute("create table test (id integer,name varchar(10),nickname blob )")
14、获取环境变量字典
import os
env_dist = os.environ # environ是在os.py中定义的一个dict environ = {}
print env_dist.get('JAVA_HOME')
15、pycharm 一键 快速 批量 修改变量名 快捷键
快捷键为:Ctrl+Shift+Alt+J
16、一般用于Windows下
file_path = os.path.split(path) #分割出目录与文件
lists = file_path[1].split('.') #分割出文件与文件扩展名
file_ext = lists[-1] #取出后缀名(列表切片操作)
17、将hive、sqoop等命令的执行输出写入日志
import subprocess #Popen
proc = subprocess.Popen(medusaCMD, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, shell=True)
for line in iter(proc.stdout.readline, 'b'):
print line
if not subprocess.Popen.poll(proc) is None:
if line == "":
break
proc.stdout.close()
18、join()函数
对元组进行操作(分别使用' ' 、' - '与':'作为分隔符)
c=('1','2','3','4','5')
' '.join(c)
1 2 3 4 5
'-'.join(c)
1-2-3-4-5
':'.join(c)
1:2:3:4:5
19、# Python中’main’模块的作用
https://www.cnblogs.com/crazyrunning/p/6904658.html
22、Python3 * 和 ** 运算符(函数传参)
https://blog.csdn.net/yilovexing/article/details/80577510
23、# [python 字符串替换]
将一个字符串中的每个空格替换成“%20”。例如,当字符串为 s=‘We Are Happy’.则经过替换之后的字符串为We%20Are%20Happy。
方法一:s.replace(' ','%20')
方法二:用正则表达式
import re
s = 'We Are Happy' p = re.compile(' ')
replace = p.sub('%20',s)
print(replace)
24、Python批量执行文件夹下SQL文件
https://www.jianshu.com/p/0604d9dbcafd
25、# python 中 open与with open 的区别
使用with创建运行时环境
with open('xxx.text', encoding='utf-8') as file:
file_content = file.read()
file.seek(0)
file_ten_characters = file.read(10)
print(file_content)
print(file_ten_characters)
#执行完with中的代码后自动退出运行时环境
for line in f.readlines():
print( line.strip() )
26、# Python列表中去重的多种方法
l1 = [1,4,4,2,3,4,5,6,1]
l2 = list(set(l1))
print(l2) # [1, 2, 3, 4, 5, 6]
27、python 写文件
https://www.cnblogs.com/miaomiaokaixin/p/11505949.html
with open(path,"a",encoding="utf-8") as f3:
f3.write("young girl")
29、python3 判断文件目录是否存在
import os
判断文件是否存在(绝对/相对路径)。
print(os.path.exists("downloadFailure.txt"))
判断目录是否存在(绝对/相对路径)。
print(os.path.exists("project_origin"))
30、创建目录
os.makedir(log_path)
31、# python中获取执行脚本路径方法
import sys
print(sys.path)
print(sys.path[0]) #获取执行脚本目录绝对路径
sys.argv[0]:获取脚本执行本身路径
33、移除(删除)文件及文件夹处理
https://blog.csdn.net/qq_33733970/article/details/83376888
shutil.rmtree() 表示递归删除文件夹下的所有子文件夹和子文件。
import shutil,os
if os.path.exists(os.path.join(bizimage_filepath, image_name)):
//移除文件
os.remove(os.path.join(bizimage_filepath, image_name))
//移除带文件的文件夹
shutil.rmtree(bizimage_filepath)
34、用Python批量复制文件
https://www.sohu.com/a/277948273_571478
import shutil
copyfile(source, target)
copy(source, target)
35、switch/case
https://blog.csdn.net/l460133921/article/details/74892476
def num_to_string(num):
numbers = {
0 : "zero",
1 : "one",
2 : "two",
3 : "three"
}
return numbers.get(num, None)
36、大小写转化
print(str.upper()) # 把所有字符中的小写字母转换成大写字母
print(str.lower()) # 把所有字符中的大写字母转换成小写字母
37、exit(0)和exit(1)的用法和区别
exit(0):无错误退出
exit(1):有错误退出
38、 strip() 方法用于移除字符串头尾指定的字符(默认为空格或换行符)或字符序列
str = "00000003210Runoob01230000000";
print str.strip( '0' ); # 去除首尾字符 0
str2 = " Runoob "; # 去除首尾空格
print str2.strip();
以上实例输出结果如下:
3210Runoob0123
Runoob
39、三目运算
a=(x if (x>y) else y)
print(a if (a>z) else z)
40、pyCharm中添加方法注释
https://blog.csdn.net/dkjkls/article/details/88933950
File -> Settings -> Tools -> Python Integrated Tools -> Docstrings -> Docstring format
41、python离线安装openpyxl
python setup.py install
42、name == 'main' 到底是什么意思
https://blog.csdn.net/longintchar/article/details/87120496
43、爬虫--正则表达式(https://www.cnblogs.com/zhuifeng-mayi/p/9652331.html)
44、# python怎么用一个print换行输出多个变量
print(n,f,s1,s2,s3,s4,sep='\n')
45、操作mysql
https://blog.csdn.net/yushupan/article/details/85061143
46、使用executemany对数据进行批量插入(https://www.jb51.net/article/108314.htm)
coding:utf8
conn = MySQLdb.connect(host = “localhost”, user = “root”, passwd = “123456”, db = “myDB”)
cursor = conn.cursor()
sql = “insert into myTable (created_day,name,count) values(%s,%s,%s) ON DUPLICATE KEY UPDATE count=count+values(count)”
args=[("2012-08-27","name1",100),("2012-08-27","name1",200),("2012-08-27","name2",300)]
try:
cursor.executemany(sql, args)
except Exception as e:
print0(“执行MySQL: %s 时出错:%s” % (sql, e))
finally:
cursor.close()
conn.commit()
conn.close()
47、Python脚本开头
https://www.jb51.net/article/149613.htm
48、python – 如何获取网址中最后一个斜杠之后的所有内容?(http://www.voidcn.com/article/p-olecydro-bsr.html)
URL: http://www.test.com/page/page/12345
returns: 12345
url.rsplit('/', 1)[-1]
49、Python3 三目运算符
a if x else b
如果 x 为 True,返回 a;否则返回 b
50、python--浏览器url编解码中文转换(https://blog.csdn.net/hubingshabi/article/details/101626670)
from urllib.parse import quote, unquote
print(unquote('%E4%B8%AD%E5%9B%BD'))
print(quote('农业'))
51、BeautifulSoup常见的解析器(https://blog.csdn.net/smile_Shujie/article/details/92781804)
52、# python爬虫beautifulsoup查找定位Select用法
https://www.cnblogs.com/vipchenwei/p/7807860.html
https://www.cnblogs.com/cttcarrotsgarden/p/10770205.html
.find() 和 .findAll() 用法 ( https://www.136.la/shida/show-30052.html)
53、# xpath定位方法详解
54、# Python中字符串String去除出换行符和空格的问题(\n,\r)
在python中存在继承了 回车符\r 和 换行符\n 两种标记
aa.replace('\n', '').replace('\r', '') 去掉 aa字符内所有的 回车符和换行符
aa.string.replace(' ', '') 去掉 aa字符内所有的 空格
aa.strip() 只能够去除aa字符串首尾的空格,不能够去除中间的空格
55、判断列表是否为空(https://www.cnblogs.com/shenxiaolin/p/12546678.html)
list_temp = []
if list_temp: # 存在值即为真
print(True)
else: # list_temp是空的
print(False)
57、json 代码标准化(https://tool.oschina.net/codeformat/css)
58、字符串转浮点型数字
x = 123.456
y = float(x)
print(y)
59、# python遍历字典的四种方法
for key,value in a.items():
print(key+':'+value)
a:1
b:2
c:3
60、Python之字典添加元素的几种方法(https://www.jb51.net/article/196873.htm)
使用update()方法,参数为字典对象
book_dict.update({"country": "china"})
61、Python中产生随机数(https://blog.csdn.net/zq476668643/article/details/95219453)
产生0到1之间的浮点数: random.random()
产生n---m之间的浮点数: random.uniform(1.1,5.4)
62、Python取整——向上取整、向下取整(https://blog.csdn.net/weixin_41712499/article/details/85208928)
向上取整:math.ceil()
import math
math.ceil(-0.5)
>>> 0
math.ceil(-0.9)
>>> 0
math.ceil(0.3)
>>> 1
63、python怎么保留小数点位数(https://jingyan.baidu.com/article/fea4511aa40df6b7bb9125c6.html)
a=1.2222345
a=('%.2f' % a)
print(a)
64、if 语句数字逻辑判断(https://blog.csdn.net/qq_31931797/article/details/96734318)
python支持10>=a>=0,不用像java中还要写成a >= 0 and a <= 10
66、用Python爬取芒果TV、腾讯视频、B站、爱奇艺、知乎、微博这几大平台的弹幕、评论,看这一篇就够了!
https://cloud.tencent.com/developer/article/1872409
67、Python注释之TODO注释(https://blog.csdn.net/u014571489/article/details/82943036)
68、彻底搞懂Python异常处理:try-except-else-finally(https://blog.csdn.net/weixin_42152811/article/details/115189076)
无论有无异常,finally代码段一定会被执行
若有异常,则执行except代码段
若无异常且无return,则执行else代码段
若无异常且有return, try代码段中有return 语句, 则else代码段不会被执行
若无异常且有return, try代码段没有return语句,则else代码段会执行
70、# python-----实现print不换行
print('Hello',end='')
71、range设置步长
for i in range(10, 100, 10):
print(i)
72、Python format 格式化函数(https://www.runoob.com/python/att-string-format.html)
实例
"{} {}".format("hello", "world") # 不设置指定位置,按默认顺序
'hello world'
"{0} {1}".format("hello", "world") # 设置指定位置
'hello world'
"{1} {0} {1}".format("hello", "world") # 设置指定位置
'world hello world'
73、列表转字符串 # python list 与 String 互相转换
str0 = '127.0.0.1'
list0 = str0.split('.')
print(list0)
str1 = '#'.join(list0)
print(str1)
74、# Python一个文件调用另外一个文件的方法
https://blog.csdn.net/sinat_38682860/article/details/109103445
from MainProgramWB import PublicMethod
75、Python中的 if name == "main"到底是个啥意思?(https://blog.csdn.net/weixin_35684521/article/details/81396434)
得出一个非常实用的结论: 如果模块是被直接运行的,则代码块被运行,如果模块被import,则代码块不被运行。
76、local variable referenced before assignment 原因及解决办法(https://blog.csdn.net/sinat_40304087/article/details/115701595)
不要在函数内部改变全局变量的值,如果确实想改变全局变量的值(以a为例),那么需要在函数内部首先声明,即加上global a这一行代码。
77、关于import datetime和from datetime import datetime同时添加报错(https://blog.csdn.net/feiyang5260/article/details/87831088)
同时添加两个引用会导致由于有两个同名datetime模块,调用datetime模块函数时程序不知道调用的是哪一个而报错,from datetime import datetime是import datetime的子模块
解决方案:
将from datetime import datetime删除,需要引用该子模块函数时,利用import datetime来调用,即datetime.datetime.函数名()
78、This inspection detects situations when list creation could be rewritten with list literal.(https://blog.csdn.net/u014418725/article/details/89145380)
在使用pycharm IDE的时候,声明空List,出现如题警告,虽然并不影响运行,但是看起来比较烦人。故尝试消除
point_collection = list()
point_collection.append(point_list)
79、# Python模拟登录的几种方法
https://blog.csdn.net/weixin_45651841/article/details/107358424
from selenium import webdriver
import time
chrome_driver = r"C:\ProgramData\Anaconda3_new\Lib\site-packages\selenium\webdriver\chrome\chromedriver.exe"
driver = webdriver.Chrome(executable_path=chrome_driver)
driver = webdriver.Chrome()
driver.get('https://weibo.com/login.php')
driver.manage().window().maximize()
time.sleep(10)
user = driver.find_element_by_xpath('//[@id="loginname"]')
user.clear()
user.send_keys('[email protected]')
passwd = driver.find_element_by_xpath('//[@id="pl_login_form"]/div/div[3]/div[2]/div/input')
passwd.clear()
passwd.send_keys('bud,99Lax')
login = driver.find_element_by_css_selector('#pl_login_form > div > div:nth-child(3) > div.info_list.login_btn > a')
login.click()
time.sleep(1) # 如果有验证码,给出输入验证码的时间
driver.get_cookies()
80、# Beautiful Soup 如何获取到href
for item in goods_list:
print('https:' + item.attrs['href'])
81、python 从list中随机取值(https://blog.csdn.net/weixin_39791387/article/details/84958436)
import random
list1 = ['佛山', '南宁', '北海', '杭州', '南昌', '厦门', '温州']
a = random.choice(list1)
print(a)
82、Python split()方法(https://www.runoob.com/python/att-string-split.html)
str3 = str2.rsplit('}', 1)
print(str3)
txt = "Google#Runoob#Taobao#Facebook"
第二个参数为 1,返回两个参数列表
x = txt.split("#", 1)
print x
83、随机打乱列表(https://blog.csdn.net/wyounger/article/details/106265336)
第一种方法:
x = ['aa', 'bb', 'cc', 'dd', 'ee']
random.shuffle(x)
print(x)
第二种方法(转为set):
word_list = ['波司登', '竹叶青茶', '涪陵榨菜', '奥康', '雅迪', '飞鹤', '云集', '安踏', '幡然', 'GMMCYY', '罗德梅科', 'aymelon', 'prevadaza', 'TWININGS', 'TWG', 'Harney & Sons', 'Dilmah', 'Tetley', '鱼泉', '六必居', '饭扫光', '味聚特', '红蜻蜓', '蜘蛛王', '爱玛', '台铃', '新日', '惠氏',
'赞美臣', '雅培', '伊利', '君乐宝', '李宁', '特步', '鸿星尔克']
for item in set(word_list):
print(item)
84、列表倒序(https://www.runoob.com/python/att-list-reverse.html)
aList = [123, 'xyz', 'zara', 'abc', 'xyz']
aList.reverse()
print "List : ", aList
85、指定范围产生随机数(https://blog.csdn.net/weixin_42503456/article/details/113709505)
1、random.random( )
random.random( ),用于生成范围在[0, 1)之间的随机实数。
2、random.uniform(a, b)
random.uniform(a, b),用于生成一个指定范围[a, b]内的随机符点数。
86、# python 字符串是否包含某个子字符串
if str1 in str2:
包含的话,True
87、Python中如何打印列表中每个元素的下标?(https://www.zhihu.com/question/429208384)
for i,item in enumerate(nodes):
video_id=item['nodes'][0]['nodes'][0]['data']['videoId']
url='https://v.youku.com/v_show/id_'+video_id+'.html'
print(i,url)
88、遍历set(https://www.cnblogs.com/xiaoit/p/4045563.html)
weekdays = set(['MON', 'TUE', 'WED', 'THU', 'FRI', 'SAT', 'SUN'])
for d in weekdays:
print (d)
89、# python脚本传递参数
import sys
print(sys.argv[0]) #sys.argv[0] 类似于shell中的$0,但不是脚本名称,而是脚本的路径
print(sys.argv[1]) #sys.argv[1] 表示传入的第一个参数,既 hello
90、# python 读取TXT文档内容 转换为字典
with open("yester.txt","r",encoding="utf-8") as f:
user_dict={}
for userline in f:
userline=str(userline).replace('\n','')
user_dict[userline.split(' ',1)[0]]=userline.split(' ',1)[1]
91、python:读写文件判断一行是否为空(https://blog.csdn.net/lwgkzl/article/details/82148054)
92、python中自带的计数器(https://blog.csdn.net/weixin_44076384/article/details/86777624)
from collections import Counter
txt = 'from collections import Counter'
print(type(Counter))
print(Counter(txt))
print(Counter(txt).most_common())
print(Counter(txt).most_common(2))
print(Counter(txt.split()))
93、# python字符串格式化方法%s和format函数
print("my name is %s and i am %d years old" %("xiaoming",18)
94、python中ravel()用法(https://blog.csdn.net/yunfeather/article/details/106316811)
a.ravel() #ravel()方法将[数组]维度拉成一维数组
Numpy 中的 ravel() 和 flatten()
95、fillna()函数详解(https://blog.csdn.net/lien0906/article/details/105483342/)
inplace参数的取值:True、False
True:直接修改原对象
False:创建一个副本,修改副本,原对象不变(缺省默认)
96、Python列表去重(https://www.cnblogs.com/huturen/p/15103531.html)
old_list = [2, 3, 4, 5, 1, 2, 3]
new_list = list(set(old_list))
new_list.sort(key=old_list.index)
print(new_list) # 保留顺序:[2, 3, 4, 5, 1]
97、logging
添加输出一些公共默认信息
每天生成一个日志文件
98、Python中subplots_adjust函数的说明(https://blog.csdn.net/lty_sky/article/details/104589415/)
99、文件读取路径
file_path = os.path.abspath('data/testSet.txt')
100、pip 和pip3区别(https://blog.csdn.net/qq_40584960/article/details/86082019)
python 有python2和python3的区别
那么pip也有pip和pip3的区别
大概是这样的
1、pip是python的包管理工具,pip和pip3版本不同,都位于Scripts\目录下:
2、如果系统中只安装了Python2,那么就只能使用pip。
3、如果系统中只安装了Python3,那么既可以使用pip也可以使用pip3,二者是等价的。
4、如果系统中同时安装了Python2和Python3,则pip默认给Python2用,pip3指定给Python3用。
5、重要:虚拟环境中,若只存在一个python版本,可以认为在用系统中pip和pip3命令都是相同的
101、如何安装python_speech_features(https://blog.csdn.net/just_h/article/details/81265559?utm_source=blogxgwz4)
pip3 install python_speech_features
102、python中shutil.copy()的用法(https://blog.csdn.net/weixin_46471983/article/details/121990552)
shutil.copy(src, dst)是为了复制文件内容且不包含元数据从src到dst,
dst必须是完整的文件路径文件名
注意:如果src和dst是同一个文件,就会引发错误,dst必须是可写的,否则将引发错误,如果dst已经存在,就会被替换
https://blog.csdn.net/qq_25360769/article/details/80023656
103、python的yield方法_python中的yield详解(https://blog.csdn.net/weixin_30444573/article/details/112963765)
调用函数并不会执行语句
def foo():
print('Starting.....')
while True:
res = yield 4
print("res:", res)
下面调用函数并没有执行,可以先将后面的语句注释掉
逐行运行代码观察效果
g = foo()
print("第一次调用执行结果:")
print(next(g))
print("" * 100)
print("第二次调用执行结果:")
print(next(g))
print("" * 100)第一次调用执行结果:
Starting.....
4
第二次调用执行结果:
res: None
4
104、切片操作(https://www.bilibili.com/video/BV16541197nw?vd_source=36b6f1ba2243b2e495afeec952d78e6c)
105、zip() 函数(http://c.biancheng.net/view/2237.html)
my_list = [11,12,13]
my_tuple = (21,22,23)
print([x for x in zip(my_list,my_tuple)])
my_dic = {31:2,32:4,33:5}
my_set = {41,42,43,44}
print([x for x in zip(my_dic)])
my_pychar = "python"
my_shechar = "shell"
print([x for x in zip(my_pychar,my_shechar)])
程序执行结果为:
[(11, 21), (12, 22), (13, 23)]
[(31,), (32,), (33,)]
[('p', 's'), ('y', 'h'), ('t', 'e'), ('h', 'l'), ('o', 'l')]
106、divmod()(https://blog.csdn.net/yizhishuixiong/article/details/105237838)
计算 a 除以 b 的商和余数,并返回一个包含商和余数的元组
107、python里apply用法_Python apply函数的用法(https://blog.csdn.net/weixin_36313588/article/details/113993242)
108、args和*kwargs是什么意思(https://blog.csdn.net/qingsi11/article/details/112285969)
总的来说,args代表任何多个无名参数,返回的是元组;kwargs表示关键字参数,所有传入的key=value,返回字典;
def test(a,args,**kwargs):
print(a)
print(args)
print(kwargs)
test(1,3,5,7,c='2',d=4)
1
(3, 5, 7)
{‘c’: ‘2’, ‘d’: 4}
109、python装饰器详解(https://blog.csdn.net/weixin_44992737/article/details/125868592)
装饰器本质上是一个Python函数(其实就是闭包),它可以让其他函数在不需要做任何代码变动的前提下增加额外功能,装饰器的返回值也是一个函数对象。装饰器用于有以下场景,比如:插入日志、性能测试、事务处理、缓存、权限校验等场景
110、python中的eval函数和map函数(https://blog.csdn.net/qq_45599904/article/details/108175308)
for i in FocusList:
print(i,22)
print(type(i))
FocusList = map(eval, FocusList)
for i in FocusList:
print(i)
print(type(i))
0 22
1 22
2 22
3 22
0
1
2
3
111、