Python笔记

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)

image.png

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)

图片.png

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


image.png

添加输出一些公共默认信息


image.png

每天生成一个日志文件


image.png
image.png
image.png
image.png
image.png
image.png
image.png

image.png
image.png
image.png

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)

image.png

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 的商和余数,并返回一个包含商和余数的元组

image.png

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函数(其实就是闭包),它可以让其他函数在不需要做任何代码变动的前提下增加额外功能,装饰器的返回值也是一个函数对象。装饰器用于有以下场景,比如:插入日志、性能测试、事务处理、缓存、权限校验等场景

image.png

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、

你可能感兴趣的:(Python笔记)