Python之路Day2
闲话
很幸运能跟着老男孩学习Python,从去年冬天开始,我就通过网上不同的平台接触到Python,但是没有好的老师教,要学好一门编程语言也非易事,编程语言是一门专业的技术技能,我并不同意网上所说的:“人人都应该学会一门编程语言”。金角大王,银角大王讲课风格是我喜欢的,如果不是喜欢他们的讲课风格,我有可能就报名其他的了,哈哈。还有洋洋老师认真负责,顺便说一句,声音真好听。呃......扯远了。通过几周的学习,掌握了基本的Linux命令,和python基础编程的一部分,现将自己对这些课程中的知识点做以总结。
什么是Python
传说Python是龟叔圣诞节打发无聊的时间而发明的一种解释型、面向对象的高级语言。在学习Python之前,自己学习的最完整的一门编程语言就是C语言,那还是在大学的时候,自己当时用谭浩强的C语言,当时学完C以后就感觉,C语言过来过去都是一个黑框,与自己使用的软件相差甚远;因为自己并非专业计算机专业学生,通过自己自学又肤浅的了解点java,非常流行的java自己还是没有学会。
在我的理解中,任何一门编程语言,都是指挥计算机表达我们的想法,也就是我们编写的程序是命令,而计算机就是为我们干活。不论是现在学习的Python,还是以前学习的C语言和java,他们之间编程语言差异很大,但最终目的是通过编译器或者解释器,翻译成计算机CPU能明白的机器指令,从而使计算机跟随我们的意图工作。
那么不同的编程语言,就和我们的自然语言一样都有优缺点。就拿Python,C,java,来做一个比较吧。如果我们要写一个程序,C语言需要600行代码量,java需要160行代码量,而Pyhthon需要16行代码量就足够了。可以得出,Python是一门相当高级的语言。那么,Python的代码量少,运行速度如何呢?C程序运行可能是1秒,java是2秒,Python就是8秒,这只是个举例。在真正的程序中,相差可能是微妙级的,用户感觉不是很明显。既然python这么高级,是不是容易学习呢?通过自己的学习,我个人认为:编程语言并非是人人都需要学,人人都能学会的一项技能。高级语言不等于简单易学,同样要付出时间努力和精力。
Python语言看到底能干些什么呢?它可以做自动化运维发开发,可以自动备份我们的文件,可以做爬虫,当然它可以开发网站,比如国内的豆瓣,国外的Youtube都是用python写的,就连大名鼎鼎的Google也是大量使用python,所以不用担python是个花瓶,只能看着不能干活了。python上天了?什么都能干?也不是,比如写操作系统,就得C来,写手机APP就得java或swift、objec-c,写3d游戏就得c/c++。鱼和熊掌不可兼得嘛,先学会走在学会跑,学Python是很好的选择。
Python因为解释器的不同而划分为以下几种:(Python的解释器很多,但使用最广泛的还是Cpython)
Cpython,是python的官方版本,从官网上下载的就是此版本,使用C语言开发的,在命令行下运行python就是启动Cpython解释器。这是使用最广泛的python解释器。
IPython同样是使用C语言开发的交互式解释器,IPython只是在交互方式上有所增强,但是只能python的代码功能和Cpython是一样的。例如一个游戏有不同版本一样。
PyPy是另外一款python解释器,它的最大的特点是相比较其他的python解释器,pypy的执行速度要快很多。
Jpython是运行在Java平台上的解释器,可以直接把python代码编译成Java字节码执行。
与Python代码见面
1.输出
python的输入和输出,在Python中使用print(),在括号中间加上想要表达的字符串,并用单引号引起来,就可以向屏幕输出指定的内容。例如:输出'Hello World!',代码如下:
print('Hello World!')
print可以打印多个字符串,中间使用,隔开。例如:
print('This is ','my python')
print还可以打印int型数值,而且还能计算结果:
我们可以把字符串和数值同时打印出来,这样看起来就更清晰一些。
>>>print('sum = ', 8800) >>>sum = 8800
如果把print()括号中的数字用‘’引起来的话,那么其数据类型就不是一个数值而是一个字符串。
2.输入
在python2.7中,我们要区分input和raw_input。input的返回数值类型是数值型,如果要用input输入一个字符串,需要用"",而raw_input返回是字符串类型,不可以输入数值类型,而输入字符串类型的时候无需""。
再者input会计算数字表达式,而raw_input不会。
#UserName = zhangsan #userPassword = 123 UserName = raw_input("Input the username:") UsrePassword = input("Input the password:")
在执行Python程序的时候,要明确的指出***.py由python解释器来执行。需要在***.py文件的头部指定解释器。如下:
#!/usr/bin/env python print('Hello World!')
3.关于python中的编码
python的解释器在加载***.py文件时会默认对内容进行编码,而编码的格式为ascill。而ascill码不能显示中文,会报错。我们必须要使用Unicode万国码,而都Unicode进行过优化的UTF-8是我们最佳的选择。在写Python代码之前,要在程序的头部加入以下内容:
#!/usr/bin/env python #_*_ coding:utf-8 _*_ print ("你好,世界")
4.关于python中的注释
单行注释用#即可
多行注释用""" """
# This is python """ This is python This is code """
5.python程序的运行
在执行Python代码时,如果使用import导入了其他的.py文件,那么在执行的过程中会自动生成一个与其同名的.pyc文件,这个文件是解释器编译后产生的字节码。
在windows中不能像运行.exe文件那样,直接运行python程序,必须使用python的交互窗口,然后使用python ***.py的方式来执行Python程序,但在linux中可以直接运行python程序,在linux运行python程序之前,需要给python文件给予执行权限 chmod a+x ***.py
Python的基础语法
python是一种计算机编程语言,计算机要根据编程语言严格的执行,不允许有歧义性。所以任何一种编程语言,都有自己的语言规则,而编译器或者解释器会根据这些规则来翻译成CPU能看懂的机器码。
python的语法很简单,就是强制缩进,每一层级的缩进就是代表层级的运行级别。(这个描述起来,好像不是很好描述呀!)
#!/usr/bin/env python
#_*_ coding:utf-8 _*_
temp = 10 if temp >10 print("这个数比10大") else: print("这个数小于等于10")
注意在python缩进的时候,没有特别说明使用的是几个空格还是Tab,一般都是4个空格,当然在Python的IDE中,一个Tab就是4个空格了。另外,自己可以在文本编辑器中设置Tab键缩进几个空格。
Python的数据类型与变量
1.数据类型
计算机当初发明的时候是处理大量的数据计算,随着时代的发展,计算机能处理的数据越来越多,可以处理文字 图片 视频等各种各样的数据,不同的数据,需要定义不同的数据类型。
计算机能够直接处理的数据类型一般为以下几种:整数 浮点数 字符串 布尔值
整数顾名思义,就是我们数学中学习的整数,python可以处理整数,包括负数

浮点数,就是小数,因为在科学计数法时候,小说点可以变化的,所以成为浮点数。
字符串:在python中字符串,就是'' 或 "" 中间包含的任意文本字符,包含数字。例如:'snow' 和"snowman123"都是属于字符串。其中,'并不算做一个字符,'snow'中只有 s n o w这4个字符。同理"snowman123"同理。
那么为什么在python中会有''和""呢?他们的结果都是一样的呀,都是中间包含字符串。
例如输出"Let's go!",这样双引号和单引号就派上用场了。
如果是单引号中包含单引号,那么就需要对字符串中引号进行转义,python会明白中间单引号是字符串中的一个字符,而不是字符串的结束标记。

布尔值,其实就是“真”与“假”,用True和False来表示,其有唯一性,要么是True,要么是False。一定要注意大小写。

另外,布尔值可以用 and or not来运算。and是与, or是或, not是非。

布尔值经常用于判断中
Python中的变量
对于程序中的变量,个人理解,就和我们学过的数学方程式中x是一个意思,它代表一个未知的值,需要我们给它赋值。变量不仅仅是数值,可以是任意数据类型。
Python3中对整数大小没有限制,对浮点数大小也没有限制。
当然,变量的命名不仅仅是一个x,它可以是一个数字与字母的组合等,变量的命名规则如下:
- 变量名只能是 字母、数字或下划线的任意组合
- 变量名的第一个字符不能是数字
- 以下关键字不能声明为变量名
- ['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 'try', 'while', 'with', 'yield']
python中的变量,可以反复赋值,而且可以反复赋值不同的数据类型,在C语言中不行。在程序中,=为复制,==为比较。如下:


这可能就是C是静态语言,而Python是动态语言对变量赋值的不同吧,动态语言这样赋值方便是方便,是不是更容易出错呢?
在Python中,a = 'snow',Python的解释器创建了一个字符串‘snow’,然后又在内存中开辟了一个地址,并指向'snow'
这里借用引脚大王的示意图可以说明一下。



python的条件判断
计算机发明出来是帮助人们高效工作的,计算机肯定有自己的判断力,这个判断力就来自于编程语言中的条件判断。
那么在python中的判断就是if...else

根据Python的缩进规则,如果if判断为真,则执行print("这个小孩太小了"),如果判断为假,那么执行else后面的语句。
在这里一定要注意,: 冒号不要忘记了!!!冒号不要忘记了!!!
我们还可以使用elif来做更精确的判断。(elif 是 else if的缩写)
if <条件判断1>:
<执行1>
elif <条件判断2>:
<执行2>
elif <条件判断3>:
<执行3>
else:
<执行4>
if语句执行有个特点,它是从上往下判断,如果在某个判断上是True,把该判断对应的语句执行后,就忽略掉剩下的elif和else。
Python的循环
循环是让计算机做重复任务的有效的方法,有些时候,如果代码写得有问题,会让程序陷入“死循环”,也就是永远循环下去。这时可以用Ctrl+C退出程序,或强行关闭python。
在python中有两种循环,一种是while循环,一种是for循环。
只要条件满足,就不断循环,条件不满足时退出循环。比如我们要计算100以内所有奇数之和,可以用while循环实现:
sum = 0
n = 99
while n > 0:
sum = sum + n
n = n - 2
print(sum)
在循环内部变量n不断自减,直到变为-1时,不再满足while条件,循环退出。
while 条件:
# 循环体 # 如果条件为真,那么循环体则执行 # 如果条件为假,那么循环体不执行break:退出所有循环

continue:退出当前循环,继续执行下一次循环。

浙公网安备 33010602011771号