写在前面:本文章基于Python3
PyCharm
可以创建目录
Python Packge
像文件夹,但是有区别,会自动为你创建一个__init__.py文件
如果包里没有__init__.py,那么导入的方法也就无效了,如果碰到了明明导入了,但是却没法使用的问题,那么可以试着看看你的引入的包是文件夹还是包
python3里面可以不用一定有__init__.py,虽然支持这样做,但是还是创建一个包比较好,不要从一个文件夹导入,因为文件夹存储的是资源文件(比如账号信息什么的),包才是存储代码的
有点像namespace,是为了解决命名冲突的问题
引入包含文件的格式:from xx(包的名字.文件名) import xx(函数名) ,这就可以清晰的知道包的名字的作用了,指定了特定包的特定方法,这样就可以解决命名冲突啦
External Libraries
新建工程都会自动存在的东西,是Python里面的东西(比如源文件),很多很多的库
底部有5个窗口
Python Console
TermInal
Run
遇到错误会报错
Debug
不会报错,遇到错误只会停止下来
Wing IDE
运行比较快,用C写的
并非跨平台,只在Windows下运行
第三方库
pypi.python.org
很多很多的第三方库
pillow 做界面
with open(..) as file:
with open(‘userinfo.txt’) as file : …(代码)
打开文件,出了代码块之后自动关闭文件
Python里的每个.py文件都可以执行
当调用其它py文件里的方法时,那么该文件里的该方法之上的东西会不会执行呢?因为我们只调用了一个方法,并没有调用上面的东西啊…
答案是会的~,而且会在当前运行程序前,将导入的文件中的代码执行一次,执行完以后才回到当前运行的程序中运行
每个.py文件都可以提供方法导出,同时也可以独立运行起来,但是,这样也会有问题,单独能够运行起来的那段代码,我们在调用它时,可能是不希望它执行的,解决方法看下面..
Python里没有明确的Main,但是,当某个py被运行起来时,print(name)会打印main
所以,上面的问题就可以通过判断是否是main来决定是否要运行独立的那段代码,示例:
...(此处省略代码)
def ...:
... (代码省略)
if __name__ == '__main__':
input("输入您的账号:")
如果此时为主程序,那么input会执行,如果不是,那么就不会执行
包的存在导致文件读取失败
如果先写了一个包,这个包里有登录程序,包里有登录信息的文件,如果在包里调用登录方法,没问题,如果在包外面进行调用,那么就会出问题了,因为那个信息文件并不在当前运行程序的相同目录下
此时,就需要把登录程序多加一个参数:用户信息文件的文件名
函数参数
一个*号 列表
def foo(*args)
调用 foo(*mylist)
两个*号 字典
def foo(**args)
可以这样使用 foo(key,value)。但是,如果你传入的是dict,不能直接传,需要这样:foo(**mydict)