学一些python:
1, 代码中带有中文的需要在头部加上# coding=utf-8
2, python 创建变量不需要声明变量类型, 直接赋值就可以了, 还可以 a, b, c = 1, 2, "henry"; 这样
3, 可以删除一个创建的变量, 例如 a=100, del a; 此时a就不可以用了
4, 截取字符串, s="henry", s=s[1:3] print(s) 输出 en; s[1] 则表示第2个字符, s[1:] 则表示从第2 个开始以后所有的
5, List 类型是[1,2,3,4,5,"henry"] 这种方式创建, tuple类型是(1,2,3,4,"henry") 这样, 元组类型是不可以修改内部数据的,
6, ** 是指数运算, 5**3 就相当于是5的3次方
7, / 和// 都是得到商, 但是/是得到真实的接过, // 是如果得到小数会向下取整;
8, python中没有, !, &,| 变成了, not, and, or
9, is 用于判断两个对象的地址是否相等
10, id 函数用于获取对象的地址
11, 没有else if 改成了elif, 没有switch 语句
12, python 中的代码块是通过 空格或者tab 来确定的, 同样的
13, 还有while else 的写法, 同理也有for else 的写法, 当循环正常结束, 而不是通过break 结束的时候会执行
14, 没有for(i=0;i<10;i++) 这种写法, 变成了 for i in range(0,10); range()函数用于创建一个迭代序列, 从0到10, 包左不包右
15, 使用def 定义一个函数, def love(who):
print who;
16, 函数不可以重载, 后面的会直接覆盖前面的
17, 在Python 中, 数字也成了, 不可变的了, 跟字符串一样, 也就是说, a=10; a=20, 调用a=10之后, 10的那个地址就被丢弃了, 然后创建了一个新的地址, 设置值为20, a1=10, b=10, a和b 指向的是同一块内存, 所以a is b 是返回true 的
18, def print(name, value) print(value="huy",name="may") 这样也是可以的
19, 跟c# 及ts 一样都可以设置默认参数, def print(name="henry");
20, 可以声明参数不定长的方法
21, 跟php 类似 局部使用全局变量可以使用global 关键字
22, 引入另一个文件, 可以用import lib. 然后可以调用lib.love() 这样;
23, 还可以 from lib import love. 之引入lib 模块下的love 方法
24, 如果是要引用另一个文件夹里面的代码, 那个文件夹必须要有一个文件名叫做__init__.py的文件
25, 异常是try except else
26, python的构造函数是, def __init__(self,...)
27,一个标准的python类
class Animal:
name = ""
def __init__(self, name):
self.name = name;
print "创建了一个对象"
def eat(self, sth):
print "i am" + self.name + "i eat " + sth;
28, 创建对象, 不需要用new 直接Animal("狗") 就好了
29, python的对象可以跟js 一样自由的添加属性, 也可以删掉属性用del, 但是删除之后不可以访问了, 直接报错. js 是只会得到undefined 而已
30, 析构函数def __del__(self):
31, 子类调用父类构造函数
Animal.__init__(self,"狗"); #Animal 是父类
__开头是是私有属性, 不能直接访问
_开头的是protected 的属性
32, 参数的强制类型转换, def fun(arg:list); 意思就是arg 必须是list类型的
33, python3.7 安装pyinstaller的方式, 首先是要在github上下载https://github.com/pyinstaller/pyinstaller
直接用pip install pyinstaller 是没有用的, 下载直接拷贝到本地, 在set_up.py 这个文件那里 执行
pyhon set_up.py install 就好了. 如果出现pefile的问题, 那就 pip install pefile.
34, 如果是引入一个文件的话, 就可以用from 文件 import *.
如果是引入一个包, 也就是一个单独的文件夹的话, 就只能是from 包 import 文件
35, 一个函数如果返回的是一个是元组的话, 那么可以这样接收. 例如一个函数返回值是(1,2,3);
a,b,c= fun(); 那么a=1,b=2,c=3
36, request.urlopen()返回的对象是可以通过get("Content-Length") 获取返回的长度.
37, 用python 下载ts视频速度特别慢, 改用c#下载会快很多, 可以用python调用c#
通过 os.popen("命令") 这个方法可以获取到真正有意义的返回值, 在c#中通过Console.Write("1") 输出结果, 那么前面的命令就可以接收这个结果.