-
安装PyCharm和Anaconda
Anaconda是可以便捷获取包且对包能够进行管理,同时对环境可以统一管理的发行版本。包含了conda、Python在内的超过180个科学包及其依赖项。其包含的科学包包括: numpy, pandas, ipython notebook等。(但如tensorflow, pytorch, xgboost等则需要自己安装,后面都会有安装文档)
PyCharm是一个用于计算机编程的集成开发环境,主要用于Python语言开发。 -
python介绍
python是一种解释型、面向对象的语言。官网(www.python.org)就有交互界面,可以体验简单程序。
python是由C语言开发的,但简洁。
优点:免费和开源、可移植、跨平台(JAVA也是)、丰富的库、可扩展性(可嵌入到C和C++语言,又称胶水式语言。举例:一般代码用python,需要效率高时写C语言)
应用范围:
1.科学计算(JAVA和python居多)
2.人工智能(python最多)
3.WEB服务端和大型网站后台(JAVA最多,其次PHP,也有python例如国外的油管和国内的豆瓣)
4.GUI开发(图形用户界面开发,视频播放器)
5.游戏开发(C++)
6.移动设备
7.嵌入式设备
8.系统运维
9.大数据
10.云计算 -
不应该用python的场景
因为python是解释执行性语言,性能不高(影响性能的可以用C/C++/JAVA/GO -
兼容问题
python3在2008年发布,不兼容python2,但需要2从3过渡时,可以用python自带的一个脚本(2to3),将2程序迁移到3里面
当写好代码后,由解释器去执行,用得最多的是CPython(使用C语言实现的解释器)
常用开发环境:IDLE、Pycharm、WingIDE…
IDLE:迷你版IDE,python的集成开发与学习环境,python自带的编辑器(竞赛、考研复试等情况下只能用这个),操作起来麻烦
IDE:集成开发环境,编程开发软件,基本不再局限支持一种语言。pycharm就是个IDE,相当于Python的外套
>>>提示符
- 关闭交互窗口:
1.右上角直接关闭
2.提示符后面ctrl+z和回车
3.提示符后面输入quit()命令
- 死循环时需要中断程序执行:ctrl+C
KeyboardInterrupt键盘中断
- IDLE使用
步骤:搜索“IDLE”打开,新建Python原文件(File>New File),保存(Flie>save)
编程后执行——摁F5(或者Run>Run module)
注意:
1.不要在程序中开头空格,空格有缩进意思
2.符号都是英文符号
- 缩进问题(缩进时,几个空格都是可以的,但数目必须统一)
一般采用4个空格算一个缩进或使用单个制表符【Tab键】,常用编辑器一般设置成Tab制表符就是4个空格
python用缩进来组织结构的,C语言用{}
- 注释
1.行注释(#)效果是这一行,解释器会跳过,给自己看
#测试,就是这样的 a=3#赋值a,=是赋值符的意思,把3赋值给a
2.段注释(三个连续的单引号’’’)
''' 测试测试 '''
- 行连接符()
一行程序的长度虽然没有限制,但为了可读性更强,会将一行较长的程序分成多行,使用行连接符(),把它放在结束的地方。
打开IDLE
>>> a="abcdefghijklmnopqrstuvwxyz" >>> b="abcdefgh ijklmnop qrstuvwxyz"
当输入b时,显示如下
>>> b 'abcdefghijklmnopqrstuvwxyz'
Python程序的构成
python程序由(多个)模块构成,模块由(多个)语句构成,语句由表达式(例如:a+b)组成。
一个模块对应python源文件,后缀名:py
程序运行时,按照模块中语句依次运行
注意:ctrl+s(保存文件)
- 对象
python中,一切皆对象,每个对象由:标识(identity)、类型(type)、值(value)组成。
1.标识,通常情况是计算机里的内存地址,每个内存建好后都有对应的编号。使用内置函数id(obj)可返回对象obj的标识。
2.类型,可以使用type(obj)获得对象的所属类型。
3.值,使用print(obj)可以直接打印出值。
对象的本质是内存块。
例如,停车场上大大小小(类型)的停车位,每个停车位有自己的编号(标识,简称id),在某某位置停车位停了一辆叫xx的车(值)
红色框就是内存块,里面是它包含的内容 ↑
>>> a=3 #a是一个变量,3是一个对象 >>> a 3 >>> id(3) 1531372336 >>> type(3)
所以代码是这么看的,对象把地址(1531372336)给了变量a↑
>>> id(3) 1531372336 >>> type(3)>>> id(a) 1531372336 >>> type(a) >>>print(a) 3
蓝色框就像个标签,红色框是一个对象,标签可以换掉,但对象始终都存在。标签可以代表对象,搜索标签可以查到这个对象(举例:名字对应人)
再举例
>>> b="我爱你" >>> id(b) 46806816 >>> type(b)
- 引用
变量成为:对象的引用。变量储存的就是对象的地址。变量通过地址引用了“对象”。
变量位于:栈内存
对象位于:堆内存
python是动态类语言,变量不需要显式声明类型。(举例,在JAVA里,需要声明int a=3,在python里直接写a=3,因为可以由变量找到对应的对象,对象里有对应的type,所以就没必要重复写这个)所以可以根据引用对象,自动确定数据类型
python是强类型语言,每个对象都有数据类型,只支持该类型支持的操作。↓
>>> a=3+10 >>> a 13 >>> a=3+"aaa"#回车键后,显示不支持操作 Traceback (most recent call last): File "", line 1, in a=3+"aaa" TypeError: unsupported operand type(s) for +: 'int' and 'str'
- 标识符
用于变量、函数、类、模块等名称(起名字),但要遵循相应的规则。
1.区分大小写。如:sxt和SXT是不同的。
2.第一个字符必须是字母或下划线,后面的字符是:字母或数字或下划线。
>>> sxt=3 >>> _sxt=456 >>> 3sxt=568 SyntaxError: invalid syntax
3.不能用:if、or、while等关键字(举例,起人名,不能起高爷爷、高爸爸,乱套了)
>>> if=3 SyntaxError: invalid syntax >>> #也报错了
4.以双下划线(–)开头或结尾的名称通常有特殊含义,尽量避免这种写法。
- 进入帮助系统看有哪些关键词
先输入>>> help()再回车
在最后一行help>的后面输入keywords,再回车
如何退出:在最后一行help>的后面输入quit,就回到了交互模式下继续编程。
也可以直接按F1,进入目录索引
- 变量和赋值
变量名=表达式
注意:变量在使用前必须先被初始化(先被赋值)
>>> a=3 >>> a 3 >>> ddd#这个ddd没有被赋值,回车后就变下面这样 Traceback (most recent call last): File "", line 1, in ddd NameError: name 'ddd' is not defined >>> ddd=0 >>> ddd 0
- 删除变量(del)和垃圾回收机制(如果对象没有变量引用,就会被回收,清空内存空间)
可以用del语句删除不再使用的变量
>>> del a >>> a Traceback (most recent call last): File "", line 1, in a NameError: name 'a' is not defined
只是把左边的a删除了,右边的对象还在,但堆的空间就那么大,这个对象会被回收(吃完饭,服务员清理桌子)
海龟绘图(turtle)
import turtle#import是导入,turtle是模块
turtle.showturtle()#显示箭头
turtle.write("高琪")#写字符串
turtle.forward(300)#前进300像素
turtle.color("red")#画笔颜色改成红色
turtle.left(90)#箭头左转90度,同理,右转是right
turtle.forward(300)
turtle.goto(0,50)#去坐标(0,50)
turtle.goto(0,0)#回原点了
turtle.penup()#抬笔操作,这样路径就看不见了,同理,pendown是落笔
turtle.goto(0,300)#可以发现箭头移动了但没有路径线条
turtle.pendown()
turtle.circle(100)#画半径为100的圆,逆时针的
奥运五环
#绘制奥运五环
import turtle
turtle.width(10)#设置圆圈的宽度为10像素宽
turtle.color("blue")#设置圆圈的颜色
turtle.circle(50)
turtle.penup()#画第一个圆时,没有关系。第2和第3个圆中间没有连着的线
turtle.goto(120,0)#如果是坐标(100,0)会发现两个圆正好贴一块,因此要分开一点点
turtle.pendown()
turtle.color("black")
turtle.circle(50)
turtle.penup()
turtle.goto(240,0)
turtle.pendown()
turtle.color("red")
turtle.circle(50)#以上,上排的3个圆画好了
turtle.penup()
turtle.goto(60,-50)
turtle.pendown()
turtle.color("yellow")
turtle.circle(50)
turtle.penup()
turtle.goto(180,-50)
turtle.pendown()
turtle.color("green")
turtle.circle(50)



