wordpress插件广告,seo海外推广,自己搭建小程序,搜索运营是什么一、基础功能 1、操作符
and 拥有更高优先级#xff0c;会先行运算。优先级顺序为 NOT、AND、OR。 2、列表 1#xff09;列表拼接
l1 [1,2,3]
l2 [4,5,6]# 方法1
# l1 l1 l2# 方法2
# l1[len(l1):len(l1)] l2# 方法3
l1.extend(l2)
print(l1) 3、函数 1#xff09;范…一、基础功能 1、操作符
and 拥有更高优先级会先行运算。优先级顺序为 NOT、AND、OR。 2、列表 1列表拼接
l1 [1,2,3]
l2 [4,5,6]# 方法1
# l1 l1 l2# 方法2
# l1[len(l1):len(l1)] l2# 方法3
l1.extend(l2)
print(l1) 3、函数 1范例1
def greetPerson(*name):print(Hello, name)greetPerson(Runoob, Google)
##结果为Hello (Runoob, Google) 2范例2 加了星号 * 的参数会以元组(tuple)的形式导入存放所有未命名的变量参数。
x True
def printLine(text):print(text, Runoob)
printLine(Python)
##Python Runoob 3范例3
def Foo(x):if (x1):return 1else:return xFoo(x-1)#nn-11
print(Foo(100))
##结果是5050 4、类 1私有字段/方法 在Python中属性和方法的访问权限只有两种公开的和私有的。如果希望是私有的在命名时可以用两个下划线作为开头。 Python并没有从语法上严格保证私有属性或方法的私密性它只是给私有属性和方法换了一个名字来“妨碍”对它们的访问事实上如果你知道更换名字的规则仍然可以访问到它们。 不建议将属性设置为私有的因为这会导致子类无法访问。所以大多数Python程序员会遵循一种命名惯例就是让属性名以单下划线开头来表示属性是受保护的本类之外的代码在访问这样的属性时应该要保持慎重。这种做法并不是语法上的规则单下划线开头的属性和方法外界仍然是可以访问的所以更多的时候它是一种暗示或隐喻。
class JustCounter:__secretCount 0 # 私有属性前缀两个下划线publicCount 0def count(self):self.__secretCount 1 # 类内部调用私有属性self.publicCount 1print(self.__secretCount)def __print1(self): # 私有方法前缀两个下划线print(This is a private method!)def print2(self):self.__print1() # 类内部调用私有方法counter JustCounter()print(counter.publicCount)# print counter.__secretCount # 报错实例不能访问私有属性
print(counter._JustCounter__secretCount) # 可以通过 对象名._类名__私有属性名 访问私有属性
counter.count()
# counter.__print1() # 报错实例不能访问私有方法
counter._JustCounter__print1() # 可以通过 对象名._类名__私有方法名 访问私有方法
counter.print2() 二、进阶功能 1、函数 1偏函数
import functools
def func(a1,a2):print(a1,a2)new_func functools.partial(func, 666) ##666 传给第一个参数
new_func(999)##结果
666 999 2__开头的函数有很多 当把面向对象中的所有__函数__实现时对象做任何操作时都会执行其中对应的方法 举例1__add__
class Foo(object):def __init__(self, num):self.num numdef __add__(self, other):data self.num other.numreturn Foo(data)obj1 Foo(1)
obj2 Foo(2)v obj1.num obj2.numprint(v)
## 结果是3 3链chain 将每个列表的函数功能拼接到一个大的列表中依次执行
from itertools import chaindef f1(x):return x 1func1_list [f1,lambda x:x-1]def f2(x):return x 10new_fun_list chain([f2], func1_list)
for func in new_fun_list:print(func) 列表也可以直接使用chain
from itertools import chainl1 [11,22,33]
l2 [44,55,66]new_list chain(l1,l2)
for item in new_list:print(item) 4python命令行传参 使用sys.argv传参 sys模块是很常用的模块 它封装了与python解释器相关的数据例如sys.modules里面有已经加载了的所有模块信息sys.path里面是PYTHONPATH的内容而sys.argv则封装了传入的参数数据。
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import sys
gpus sys.argv[1]
#gpus [int(gpus.split(,))]
batch_size sys.argv[2]
print(gpus, type(gpus))
print(batch_size, type(batch_size)) 执行python argv_test.py 1,0,2 10 使用argparse传参
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import argparse
parser argparse.ArgumentParser(descriptionmanual to this script)
parser.add_argument(--gpus, typestr, default None)
parser.add_argument(--batch-size, typeint, default32)
args parser.parse_args()
print(args.gpus, type(args.gpus))
print(args.batch_size, type(args.batch_size)) 执行python argv_test.py --gpus0,1,2 --batch-size20 2、类 1继承字典
class MyDict(dict):def __init__(self, *args, **kwargs):super(MyDict,self).__init__(*args, **kwargs)self[modify] Trueobj MyDict()
print(obj)2打开/关闭实现with方法
class SQLHelper(object):def open(self):passdef fetch(self, sql):passdef close(self):pass
### 方法1
# obj SQLHelper()
# obj.open()
# obj.fetch(selcet * from table1)
# obj.close()### 方法二
with SQLHelper() as obj: #自动调用类中的__enter__方法obj就是__enter__返回值obj.fetch(selcet * from table1)# 当执行完毕后自动调用类__exit__方法 3、web框架的本质 1werkzeug
from werkzeug.wrappers import Request, ResponseRequest.application
def hello(request):return Response(Hello World!)if __name__ __main__:from werkzeug.serving import run_simplerun_simple(127.0.0.1, 40000, hello) 2wsgi WSGIWeb Server Gateway Interface是一种规范它定义了使用python编写的web app与web server之间接口格式实现web app与web server间的解耦。 python标准库提供的独立WSGI服务器称为wsgiref。
from wsgiref.simple_server import make_serverdef RunServer(environ, start_response):start_response(200 OK, [(Content-Type, text/html)])return [bytes(h1Hello, web!/h1, encodingutf-8), ]if __name__ __main__:httpd make_server(, 8000, RunServer)print(Serving HTTP on port 8000...)httpd.serve_forever()