第一章 什么是python
使用python的公司
Google ,dropbox(美国版百度网盘,py的创始人Guido van Rossum目前就在dropbox),YouTuBe(全球最大的视频网站),UBER,Quora(美国版的知乎),instagran(美国版的朋友圈,被facebook收购9亿美金,整个公司才13个人);yelp(世界杯大众点评),豆瓣,知乎;
初创公司比较喜欢使用python。
就业前景
Pythone未来十年发展预测
未来十年,python在中国的发展会怎样?使用python的企业会不会越来越多?python主要被运用的领域有哪些?使用Python的程序员会越来越多还是越来越少?
Life is short,you need python!
计算机语言
计算机只能识别的语言为二进制,0和1,
编程语言种类
汇编语言
汇编语言的实质和机器语言是相同的,都是直接对硬件操作,只不过指令采用了英文缩写的标识符,更容易识别和记忆。它同样需要编程者将每一步具体的操作用命令的形式写出来。汇编程序通常由三部分组成:指令、伪指令和宏指令。汇编程序的每一句指令只能对应实际操作过程中的一个很细微的动作。例如移动、自增,因此汇编源程序一般比较冗长、复杂、容易出错,而且使用汇编语言编程需要有更多的计算机专业知识,但汇编语言的优点也是显而易见的,用汇编语言所能完成的操作不是一般高级语言所能够实现的,而且源程序经汇编生成的可执行文件不仅比较小,而且执行速度很快。
脚本语言
脚本语言(Script language,scripting language,scripting programming language)是为了缩短传统的编写-编译-链接-运行(edit-compile-link-run)过程而创建的计算机编程语言。此命名起源于一个脚本“screenplay”,每次运行都会使对话框逐字重复。
机器语言
由于计算机内部只能接受二进制代码,因此,用二进制代码0和1描述的指令称为机器指令,全部机器指令的集合构成计算机的机器语言,用机器语言编程的程序称为目标程序。只有目标程序才能被计算机直接识别和执行。但是机器语言编写的程序无明显特征,难以记忆,不便阅读和书写,且依赖于具体机种,局限性很大,机器语言属于低级语言。
高级语言
高级语言是大多数编程者的选择。和汇编语言相比,它不但将许多相关的机器指令合成为单条指令,并且去掉了与具体操作有关但与完成工作无关的细节,例如使用堆栈、寄存器等,这样就大大简化了程序中的指令。同时,由于省略了很多细节,编程者也就不需要有太多的专业知识。
Python语言就是高级语言的一种。
Python 发展史
创世人 Guido van Rossum,龟叔;1989年圣诞期间创建;
Python 解释器
Cpython 官方推荐
IPython 基于cpython的一个交互解释器,交互方式上好很多;
PyPy 用python写的解释器,采购JIT技术(动态编译)
Jython 使用JAVA编写的python解释器
IronPython .net写的python解释器
安装python
https://www.python.org/downloads/release/python-365/
第一个程序hellow word 仪式感
Print(“hello word!”)
Python 程序不需要用.py的扩展也可以解释,但是为了给别人区分,所以另存为配置文件时必须以py保存
什么是变量
Variables 是用来存储信息被后面的程序调用和操作。起一个变量名可以方便读明白代码,变量就相当于一个装有信息的容易。变量的主要目的就是标记和存储数据。
变量的定义规范
声明变量
Name = “Anson Chen”
Name,变量名 “anson chen” 变量值
变量名只能是字母、数字或下划线的任意组合
变量名的第一个字符不能是数字
关键字不能声明为变量名,因为是python的语法;
变量命名习惯
驼峰体
Age0f0lodboy = 56
下划线(官方推荐)
变量比较low的方式
变量名为中文、拼音
变量名过长
变量名词不达意
老男孩的年龄=56
Lodboy_nianling =56
The_name_of_oldboy_girlfriend = “lisa”
Name1 = ‘oldboy’
Name2 = “北京市昌平去”
正确定义
Age_of_oldboy = 56
Oldboy_gf_name = “lisa”
A=1
B=A
A=3
Print (‘b’) 会发现B=1
因为实际赋值中b=a,实际上是把b的赋值指向了1;
常量(在程序运行过程中不会改变的量,如π)
Python中没有一个专门的语法定义常量,约定俗成用变量名全部大写代表常量
AGE_OF_OLDBOY = 56
用户交互
读取用户输入
Name = input ( “what is your name”)
Print (name)
注释
代码注释原则,
不用全部加注释,只需要在自己觉得重要不好理解的地方加注释;
注释可以用英文或中文,但绝对不要用拼音
数据类型
数字
Int (整型)
32位范围-2**32~2**31-1,
64位范围-2**63~2**63-1
Long(长整型)
Python长整型没有指定位宽,python3里没有long,全部都是int。
在python2版本中2**62 和2**63,会自动帮你转型,后面带L的就是长整型。
在python3中全部都是int
Float (浮点型)
字符串
在python中加了引号都被认为是字符串!,单引号,双引号 ,多引号都是字符串。多引号主要用户写一段话。如果遇到I’m这种需要用双引号。
布尔
一个ture真,false假
Python会自动给数据赋类型
Age =22
Name = ‘anson’
Type(age) 都会查看到该数据自动赋予的数据类型
Type(name)
格式化输出
%s = string 字符 %d = digit 数字 %f = float 浮点 name = input ("Name:") age = int(input ("Age:")) job = input("Job:") hometown = input("Hometown:") print(type(age),type(name)) info = """ --------------info of %s------------ Name: %s Age: %d Job: %s HomeTown %s """ % (name, name, age, job, hometown) print(info)
运算符
可以进行算数运算,比较运算,赋值运算、身份运算、位运算,
10%2 返回0 10%3 返回1 取余数,可以用于偶数奇数判断;
10//3 取整3
比较运算
== 等于,!=不等于,<>只能在2里使用。
赋值运算
=简单的赋值运算 c= a+b
+= 加法赋值运算 c+=a等效于 c=c+a
-=减法赋值运算 c-=a等效于 c=c-a
*=,/=,%=,**=,//=
逻辑运算
And 与
Or 或
Not 非
流程控制
单分支
If 条件:
满足条件后要执行的代码
双分支
If 条件 :
满足条件执行代码
Else:
If条件不满足就走这段
1 username = input("username:") 2 sex = input("sex:") 3 age = int(input("age:")) 4 if sex == "female": 5 if age < 28: 6 print("I love girl") 7 else: 8 print("姐弟恋也很好") 9 else: 10 print("一起来搞基")
多分支
If 条件:
满足条件执行代码
Elif 条件:
上面条件不满足就走这个
Elif 条件:
上面条件不满足就走这个
Elif 条件:
上面条件不满足就走这个
Else:
上面所有的条件都不满足就走这段
while 循环
while 条件:
执行代码....
写个让程序从0打印到100的程序,没循环一次加1
1 count = 0 2 while count <= 100: 3 print("loop",count) 4 count += 1
打印1-100的偶数
1 count = 0 2 while count <= 100: 3 if count % 2 == 0: 4 print ("loop",count) 5 count += 1
循环打印1-100,第50次不打印,第60-80打印对应值的平方
循环终止语句
break 用户完全结束一个循环,跳出循环体执行循环后面的语句
1 count = 0 2 while count <= 100: 3 print("loop",count) 4 if count == 5: 5 break 6 count += 1 7 8 print("-----out of the loop -----")
输出结果 0 1 2 3 4 5
continue 和break有点类似,区别在于continue 只是终止本次循环,接着还执行后面的循环,break则完全终止循环;
1 count = 0 2 while count <= 100: 3 print("loop",count) 4 if count == 5: 5 continue 6 count += 1 7 8 print("-----out of the loop -----")
输出结果 0 1 2 3 4 5 5 5 5 会一直都是在走5循环下去
猜年龄的游戏,猜三次,中了退出,不中提示大了或者小了;三次如果都猜中询问是否继续该游戏;
1 age = 26 2 count = 0 3 while count < 3: 4 guess_age = int(input("please guess age:")) 5 if guess_age == age: 6 print("you right") 7 break 8 elif guess_age < age: 9 print("try bigger") 10 else: 11 print("try smaller") 12 count += 1 13 if count == 3: 14 request = input("是否在玩一次?(y|Y)") 15 if request == "y" or request == "Y": 16 count = 0
while else
count = 0
while count <= 5:
print("loop", count)
if count == 3:
break
count += 1
else:
print ("loop is done...")
print("out of loop")