Python中if __name__ == "__main__": 的作用
如果我们是直接执行某个.py文件的时候,该文件中那么”__name__ == '__main__'“是True,但是我们如果从另外一个.py文件通过import导入该文件的时候,这时__name__的值就是我们这个py文件的名字而不是__main__。
在python编译器读取源文件的时候会执行它找到的所有代码,而在执行之前会根据当前运行的模块是否为主程序而定义变量__name__的值为__main__还是模块名。因此,该判断语句为真的时候,说明当前运行的脚本为主程序,而非主程序所引用的一个模块。这在当你想要运行一些只有在将模块当做程序运行时而非当做模块引用时才执行的命令,只要将它们放到if __name__ == "__main__:"判断语句之后就可以了。
__name__ 是当前模块名,当模块被直接运行时模块名为 __main__ 。这句话的意思就是,当模块被直接运行时,以下代码块将被运行,当模块是被导入时,代码块不被运行
python.exe与pythonw.exe的区别
.py 和 .pyw 之间的“其它差别”全都是 python.exe 和 pythonw.exe 之间的差别。
跟 python.exe 比较起来,pythonw.exe有以下的不同:
1)执行时不会弹出控制台窗口(也叫DOS 窗口)
2)所有向原有的 stdout 和 stderr 的输出都无效
3)所有从原有的 stdin 的读取都只会得到 EOF
.pyw 格式是被设计来运行开发完成的纯图形界面程序的。
纯图形界面程序的用户不需要看到控制台窗口。
值得一提的是,开发纯图形界面程序的时候,你可以暂时把 .pyw 改成 .py ,
以便运行时能调出控制台窗口,看到所有错误信息,方便除虫。
查看本机Python位置
Windows:where python
Linux:which python
Class语句与Def语句
就像def一样,class语句是对象的创建者并且是一个隐含的赋值运算---执行时,它会产生类对象,并把其引用值存储在前面所使用的变量名。
Python变量名解析机制LEGB
![](https://i-blog.csdnimg.cn/blog_migrate/37ae773a99fdc30355121958f41028ee.png)
![](https://i-blog.csdnimg.cn/blog_migrate/1b70ac13273719334dc60b3f95058f12.png)
Python内建函数(built-in function)
![](https://i-blog.csdnimg.cn/blog_migrate/64adca34d528289edec4bc1f84caf96c.png)
python中eval和exec的区别
eval函数的作用:
计算指定表达式的值。也就是说它要执行的Python代码只能是单个运算表达式(注意eval不支持任意形式的赋值操作),而不能是复杂的代码逻辑,这一点和lambda表达式比较相似。
exec函数的作用:
动态执行Python代码。也就是说exec可以执行复杂的Python代码,而不像eval函数那么样只能计算一个表达式的值。
eval()函数只能计算单个表达式的值,而exec()函数可以动态运行代码段。
eval()函数可以有返回值,而exec()函数返回值永远为None。
python常用函数
len():获取序列的长度
type():获取数据类型
range():整数序列
max():求最大值
min():求最小值
cmp():比较两个值大小
python中排序与反序
sort()与sorted()
![](https://i-blog.csdnimg.cn/blog_migrate/5386b1a8d63f48276aa3fd5aa64f4b4a.png)
![](https://i-blog.csdnimg.cn/blog_migrate/72e259f61c237fe17f348b2634438ad6.png)
reverse()与reversed()
![](https://i-blog.csdnimg.cn/blog_migrate/4a8bab35c388e3ba0cd67d5ee437c659.png)
![](https://i-blog.csdnimg.cn/blog_migrate/51a49f61719e85bc7bf3df081216a690.png)
Python中的object类
class object¶
Returna new featureless object. object is a base for all classes. Ithas the methods that are common to all instances of Python classes. Thisfunction does not accept any arguments.
Note
object does not have a __dict__, so you can’t assignarbitrary attributes to an instance of the object class.
object是python中所有类的基类。
Python查看变量的数据类型
在Python中有内置函数type可以获取variable的数据类型
types包
import types
type(x) is types.IntType
或type(x) == types(1)
isinstance
isinstance ( object, classinfo )
或isinstance(object, class-or-type-or-tuple)
查看两个变量是否相同
type(a)==type(b)