Python入门
Posted xujun1270
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python入门相关的知识,希望对你有一定的参考价值。
1. 解释型语言和编译型语言
计算机本身不能识别高级语言,当我们运行一个程序的时候,需要一个“翻译” 来把 高级语言转换成计算机能读懂的语言。 “翻译”过程分两种:
编译 编译型语言在执行程序前,首先会通过编译器执行一个编译的过程,把程序编译成机器语言。 之后,程序再次运行的时候,就不要“翻译”了,而是可以直接执行。比如C语言。 编译型语言的优点在于在运行程序的时候不用解释,可直接利用已经翻译过的文件。
解释 解释型语言就没有编译的过程,而是在程序运行的时候,通过解释器逐行解释代码,然后运行。比如python。
C#,在第一次执行的时候,将代码编译成IL中间码文件,然后由JIT编译器编译成本地的机器码执行。 相当于编译了两次。
下面是现在比较流行的编译型语言以及解释型语言:
编译型VS解释型
2 文件编码
什么是文件编码
我们在显示器看见的文字图片等信息在电脑上存储的时候并不是我们看到的样子。如果你拆开硬盘,把里面的盘片拿出来用显微镜来看就会看到上面有很多凹凸的地方。和我们平时见到的光盘类似。凹凸的位置分别表示0和1。这是因为在电脑中电信号只有两种状态,有电和没电。在存储数据的时候,如果我们要保存一个字母“A”,那么就可以用一定长度的0和1来表示。比如说用“01000001”来表示A。有了这样的对应关系,我们就可以保存我们平时见到的一些字符了。
于是就是有ASCII(美国(国家)信息交换标准(代)码),使用7个或8个二进制位进行编码的方案,最多可以给256个字符。使用了ASCII码,不同的计算机之间就可以实现数据的标准化。
但是ASCII使用的时候有一些限制。他最多之可以表示256个字符。如果有其他的字符就无能为力了。ASCII只能表示26个基本的拉丁字母、阿拉伯数字和英式标点。因此也只能用于显示现代美国英语。
后来计算机世界开始有了其他语言,ASCII码已经无法满足需求。后来不同语言的人各自为自己定制了一套属于自己的编码,同时与ASCII保持兼容。这些编码统称MBCS,到了这里大家都开始好似用双字节。(中国的叫GB*,比如GBK).
在后来有人开始觉得,这么多编码,有些编码之间还不兼容,太让人头大了,于是有这么一群人就坐在一起想出了一个办法:所有的语言都使用同一种编码,这种编码就是Unicode。 Unicode使用最少2个字节(1个字节=1BYTE=8bit=一个长度为8的二进制数) 来表示字母和符号等,有时候是4个字节。这样就解决了上面遇到的问题。
Unicode又叫万国码,是业界的一种标准。但是有人又觉得如果我要表示一个ASCII里的字符,使用unicode来表示不是太浪费空间了吗,于是就有人想出了另外一种解决方案——UTF-8。
UTF-8是对Unicode编码的压缩和优化,最大的特点是它采用了变长的编码方式,他不再是最少使用2个字节,而是将所有的字符进行分类。ascii码中的内容用1个字节保存、欧洲的字符用2个字节保存,东亚的字符用3个字节保存…
不同编码之间的关系:
3. Python的优缺点
先看优点
- Python的定位是“优雅”、“明确”、“简单”,所以Python程序看上去总是简单易懂,初学者学Python,不但入门容易,而且将来深入下去,可以编写那些非常非常复杂的程序。
- 开发效率非常高,Python有非常强大的第三方库,基本上你想通过计算机实现任何功能,Python官方库里都有相应的模块进行支持,直接下载调用后,在基础库的基础上再进行开发,大大降低开发周期,避免重复造轮子。
- 高级语言————当你用Python语言编写程序的时候,你无需考虑诸如如何管理你的程序使用的内存一类的底层细节
- 可移植性————由于它的开源本质,Python已经被移植在许多平台上(经过改动使它能够工 作在不同平台上)。如果你小心地避免使用依赖于系统的特性,那么你的所有Python程序无需修改就几乎可以在市场上所有的系统平台上运行
- 可扩展性————如果你需要你的一段关键代码运行得更快或者希望某些算法不公开,你可以把你的部分程序用C或C++编写,然后在你的Python程序中使用它们。
- 可嵌入性————你可以把Python嵌入你的C/C++程序,从而向你的程序用户提供脚本功能。
再看缺点:
- 速度慢,Python 的运行速度相比C语言确实慢很多,跟JAVA相比也要慢一些,因此这也是很多所谓的大牛不屑于使用Python的主要原因,但其实这里所指的运行速度慢在大多数情况下用户是无法直接感知到的,必须借助测试工具才能体现出来,比如你用C运一个程序花了0.01s,用Python是0.1s,这样C语言直接比Python快了10倍,算是非常夸张了,但是你是无法直接通过肉眼感知的,因为一个正常人所能感知的时间最小单位是0.15-0.4s左右,哈哈。其实在大多数情况下Python已经完全可以满足你对程序速度的要求,除非你要写对速度要求极高的搜索引擎等,这种情况下,当然还是建议你用C去实现的。
- 代码不能加密,因为PYTHON是解释性语言,它的源码都是以名文形式存放的,不过我不认为这算是一个缺点,如果你的项目要求源代码必须是加密的,那你一开始就不应该用Python来去实现。
- 线程不能利用多CPU问题,这是Python被人诟病最多的一个缺点,GIL即全局解释器锁(Global Interpreter Lock),是计算机程序设计语言解释器用于同步线程的工具,使得任何时刻仅有一个线程在执行,Python的线程是操作系统的原生线程。在Linux上为pthread,在Windows上为Win thread,完全由操作系统调度线程的执行。一个python解释器进程内有一条主线程,以及多条用户程序的执行线程。即使在多核CPU平台上,由于GIL的存在,所以禁止多线程的并行执行。关于这个问题的折衷解决方法,我们在以后线程和进程章节里再进行详细探讨。
4.Python2和3的区别
5.Python安装
windows
1、下载安装包 https://www.python.org/downloads/ 2、安装 可以选择默认安装或者自定义安装,我是安装在D:\\python3.5 3、配置环境变量 【右键计算机】--》【属性】--》【高级系统设置】--》【高级】--》【环境变量】--》【在第二个内容框中找到 变量名为Path 的一行,双击】 --> 【Python安装目录追加到变值值中,用 ; 分割】 如:原来的值;D:\\python3.5\\,切记前面有分号
Linux
在大多数情况下,Linux系统自带的版本都是2.x 因为现在大部分情况下建议使用3.x 那么该如何升级呢? 下面就让我来讲解一下升级步骤: 1、首先下载安装包 wget https://www.python.org/ftp/python/3.5.6/Python-3.5.6.tgz 2、下载完成后解压 tar xf Python-3.5.6.tgz 3、进入到解压好后的目录 cd Python-3.5.6 4、编译前先给/usr/local建一个目录python3 mkdir -p /usr/local/python3 5、编译三部曲 ./configure --prefix=/usr/local/python3/ make && make install 6、然后备份一下之前的老版本python mv /usr/bin/python /usr/bin/python_bak 7、再建立新版本python的链接 ln -s /usr/local/python3/bin/python3 /usr/bin/python 8、查看python版本 [root@mysql-11 Python-3.5.6]# python -V Python 3.5.6 注意:这种方法虽然可以安装成功,但是它带来了新的问题,比如yum不能正常使用了 修改/usr/bin/yum的第一行: #!/usr/bin/python_bak
6.编写第一个小程序Hello World
指定解释器
7.变量和常量
变量
声明变量
name = "linus"
变量定义的规则:
student = 30 student_number = 30 studentNumber = 30 #这种写法叫做驼峰体
变量的赋值
name = "linus" name2 = name print(name,name2) name = "Jack" print("What is the value of name2 now?")
变量怎么清除
>>> a=1 >>> a 1 >>> del a
常量
8.基础数据类型(初始)
整数类型(int)
浮点型(float)
字符串类型(str)
布尔值(True、False)
9.Python中文编码
# -*- coding: UTF-8 -*- print ("徐骏")
10. Python注释
msg = ‘‘‘ 今天我想写首小诗, 歌颂我的同桌, 你看他那乌黑的短发, 好像一只炸毛鸡。 ‘‘‘ print(msg)
11. 用户交互
#!/usr/bin/python death_age=100 name=input ("你的名字是:") age=input ("你的年龄是:") #input接受的所有数据都是字符串,即便你输入的是数字,但依然会被当成字符串来处理 print ("You name:",name) print ("You can still live for ",death_age - int(age),"years") #int integer=整数 把字符串转成整数 用法:int(被转的数据) #str string=字符串 把数据转成字符串 用法:str(被转的数据)
12. 缩进
#!/usr/bin/python age=56 num=int(input("请输入年龄:")) if num == age: print ("您输入的",num,"是对的") else: print ("请输入错误,请重新输入")
#!/usr/bin/python age=56 num=int(input("请输入年龄:")) if num == age: print ("您输入的",num,"是对的") print ("您输入的",num,"是对的") #没有严格缩进,在执行时会报错 else: print ("请输入错误,请重新输入")
13.单分支if..else
#!/usr/bin/python age=56 num=int(input("请输入年龄:")) if num == age: print ("您输入的",num,"是对的")
双分支if...else
#!/usr/bin/python age=56 num=int(input("请输入年龄:")) if num == age: print ("您输入的",num,"是对的") else: print ("请输入错误,请重新输入")
多分支if...elif...else
#!/usr/bin/python age=56 num=int(input("请输入年龄:")) if num == age: print ("您输入的",num,"是对的") elif num < age: print ("您输入的",num,"小于实际年龄") else: print ("您输入的",num,"大于实际年龄")
money=int(input("请输入你兜里的钱: ")) if money >= 500: print("喝啤酒吃炸鸡,生活美滋滋") elif money < 500 and money >= 300: print("吃个盖浇饭,生活乐无边") elif money < 300 and money >= 50: print("吃个方便面,开心") else: print("今天减肥")
if语句的另外一种用法
s = input("请开始喷: ") if "马化腾" in s: #这个if语句表示包含了XXX: print("这个词语是屏蔽词") continue print("喷的内容是:"+s)
14.while循环
基本循环
无限循环
如何终止循环?
终止循环的第一个方法:利用改变条件,终止循环。给大家引入标志位的概念
终止循环的第二方法:break
while..else..
count = 0 while count <= 5 : count += 1 print("Loop",count) else: print("循环正常执行完啦") print("-----out of while loop ------")
count = 0 while count <= 5 : count += 1 if count == 3:break print("Loop",count) else: print("循环正常执行完啦") print("-----out of while loop ------")
while循环习题
1到100的加法
count = 1 num = 0 while count <= 100: num = count + num count = count + 1 print(num)
循环求奇数
count = 0 while count < 100: count = count + 1 num = count % 2 if num == 1: print(count)
以上是关于Python入门的主要内容,如果未能解决你的问题,请参考以下文章