python(1)- 初识python
一、了解编程语言
1.编程语言的定义
编程语言即语言,语言的本质就是沟通,因而编程语言与英语 、法语、日语等所有语言并无区别,只不过英语是人与人之间沟通的介质,而编程语言则是程序员与计算机沟通的介质。 程序员把自己想要说的话用编程的语言写到文件里,这其实就开发了一个程序,接下来让计算机按照文件里说的内容去做事情,这就是程序的执行。
2.编程语言种类
机器语言:机器语言是用二进制代码表示的计算机能直接识别和执行的一种机器指令的集合。
优点:灵活、直接执行和速度快。 缺点:不同型号的计算机其机器语言是不相通的,按着一种计算机的机器指令编制的程序,不能在另一种计算机上执行。
汇编语言:汇编语言的实质和机器语言是相同的,都是直接对硬件操作,只不过指令采用了英文缩写的标识符更容易识别和记忆。它同样需要编程者将每一步具体的操作用命令的形式写出来。
优点:能完成一般高级语言所不能实现的操作,而且源程序经汇编生成的可执行文件不仅比较小,且执行速度很快。 缺点:源程序比较冗长、复杂、容易出错,而且使用汇编语言编程需要有更多的计算机专业知识。
高级语言:高级语言是绝大多数编程者的选择。和汇编语言相比,它不但将许多相关的机器指令合成为单条指令并且去掉了与具体操作有关但与完成工作无关的细节,
例如使用堆栈、寄存器等,这样就大大简化了程序中的指令。同时,由于省略了很多细节,编程者也就不需要有太多的专业知识。
高级语言所编制的程序不能直接被计算机识别,必须经过转换才能被执行,按转换方式可将它们分为两类:
解释类:执行方式类似于我们日常生活中的“同声翻译”,应用程序源代码一边由相应语言的解释器“翻译”成目标代码(先翻译/编译成字节码,然后由解释器解释执行,这个过程程序员都无需关心了,享受这种便利即可)。
python就是解释类语言,此外,JavaScript / Perl /Shell等都是解释型语言。
优点:这种方式比较灵活,可以动态地调整、修改应用程序。
缺点:效率比较低,而且不能生成可独立执行的可执行文件,应用程序不能脱离其解释器。 编译类:编译是指在应用源程序执行之前,就将程序源代码“翻译”成目标代码(机器语言)。
优点:其目标程序可以脱离其语言环境独立执行,使用比较方便、效率较高。
缺点:但应用程序一旦需要修改,必须先修改源代码,再重新编译生成新的目标文件才能执行,只有目标文件而没有源代码,修改很不方便。大多数的编程语言都是编译型的
例如Visual C++、Visual Foxpro、Delphi等。
二、python简介
1.Python应用领域
数据分析、组件集成、网络服务、图像处理、数值计算和科学计算等众多领域。目前业内几乎所有大中型互联网企业都在使用Python,如:Youtube、Dropbox、 BT、Quora(中国知乎)、豆瓣、知乎、Google、Yahoo!、Facebook、NASA、百度、腾讯、汽车之家、美团等。互联网公司广泛使用Python来做的事一般有: 自动化运维、自动化测试、大数据分析、爬虫、Web 等。 注视:上述重点字体表示该公司主要使用Python语言开发
2.Python语言与其他语言的区别
C 和 Python、Java、C#等 C语言: 代码编译得到 机器码 ,机器码在处理器上直接执行,每一条指令控制CPU工作 其他语言: 代码编译得到 字节码 ,虚拟机执行字节码并转换成机器码再后在处理器上执行 Python 和 C Python这门语言是由C开发而来 对于使用:Python的类库齐全并且使用简洁,如果要实现同样的功能,Python 10行代码可以解决,C可能就需要100行甚至更多. Linux原装Python,其他语言没有;以上几门语言都有非常丰富的类库支持 对于速度:Python的运行速度相较与C,慢很多。比其他几门语言速度上也比较慢。 速度永远不是关键,对大多数的应用程序来说,并不需要这么快的运行速度,因为用户根本感觉不出来。 对于加密:对于编译型语言如C语言来说,可以将编译后的代码发给用户,用户反解几乎是不可能的,相当于自带加密功能了。 而解释型语言如python只能发布源码给用户,但现在主流的思想是软件开源。
3.Python的种类
(1)Cpython(最常用的版本) Python的官方版本,使用C语言实现,使用最为广泛,CPython实现会将源文件(py文件)转换成字节码文件(pyc文件),然后运行在Python虚拟机. (2)Jyhton Python的Java实现,Jython会将Python代码动态编译成Java字节码,然后在JVM上运行。 (3)IronPython Python的C#实现,IronPython将Python代码编译成C#字节码,然后在CLR上运行。(与Jython类似) (4)PyPy(特殊) Python实现的Python,将Python的字节码字节码再编译成机器码。 (5)RubyPython、Brython ...
三、python环境
windows:
1、下载安装包
https://www.python.org/downloads/
2、安装
默认安装路径:C:\python27
3、配置环境变量
【右键计算机】--》【属性】--》【高级系统设置】--》【高级】--》【环境变量】--》【在第二个内容框中找到 变量名为Path 的一行,双击】 --> 【Python安装目录追加到变值值中,用 ; 分割】
如:原来的值;C:\python27,切记前面有分号
linux:
无需安装,原装Python环境 ps:如果自带2.6,请更新至2.7
更新Python
windows:
卸载重装即可
linux:
Linux的yum依赖自带Python,为防止错误,此处更新其实就是再安装一个Python
查看默认Python版本
python -V 1、安装gcc,用于编译Python源码
yum install gcc
2、下载源码包,https://www.python.org/ftp/python/
3、解压并进入源码文件
4、编译安装
./configure
make all
make install
5、查看版本
/usr/local/bin/python2.7 -V
6、修改默认Python版本
mv /usr/bin/python /usr/bin/python2.6
ln -s /usr/local/bin/python2.7 /usr/bin/python
7、防止yum执行异常,修改yum使用的Python版本
vi /usr/bin/yum
将头部 #!/usr/bin/python 修改为 #!/usr/bin/python2.6
四、python入门
1.hello world
在D:\python_test\目录下新建文件hello.py,编写代码如下
print('hello world')
执行hello.py,即python D:\python_test\hello.py
2.指定解释器
window平台下python D:\python_test\hello.py时,明确的指出 hello.py 脚本由 python 解释器来执行。
linux平台中如果想要类似于执行shell脚本一样执行python脚本,例: ./hello.py
,那么就需要在 hello.py 文件的头部指定解释器,如下:
#!/usr/bin/env python print('hello world')
3.字符编码
python解释器在加载 .py 文件中的代码时,会对内容进行编码(默认ascill)
ASCII(American Standard Code for Information Interchange,美国标准信息交换代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代
英语和其他西欧语言,其最多只能用 8 位来表示(一个字节),即:2**8 = 256,所以,ASCII码最多只能表示 256 个符号。
显然ASCII码无法将世界上的各种文字和符号全部表示,所以,就需要新出一种可以代表所有字符和符号的编码,即:Unicode
Unicode(统一码、万国码、单一码)是一种在计算机上使用的字符编码。Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字
符设定了统一并且唯一的二进制编码,规定虽有的字符和符号最少由 16 位来表示(2个字节),即:2 **16 = 65536
注:此处说的的是最少2个字节,可能更多
UTF-8,是对Unicode编码的压缩和优化,他不再使用最少使用2个字节,而是将所有的字符和符号进行分类:ascii码中的内容用1个字节保存、欧洲的字符
用2个字节保存,东亚的字符用3个字节保存...
所以,python解释器在加载 .py 文件中的代码时,会对内容进行编码
在python3中默认utf-8,,可以编码中文
在python2中默认ascill,ascii码无法表示中文
如果是如下代码的话:
#!/usr/bin/env python print "你好,世界"
--->报错:ascii码无法表示中文
改正:应该显示的告诉python解释器,用什么编码来执行源代码
#!/usr/bin/env python
# -*- coding: utf-8 -*- print "你好,世界"
4.注释
单行注视:# 被注释内容
多行注释:""" 被注释内容 """
注释快捷键:选中被注释的内容,ctrl+?注释选中的内容,再次ctrl+?取消注释
5 执行脚本传入参数
Python有大量的模块,从而使得开发Python程序非常简洁。类库有包括三中:
(1)Python内部提供的模块;(2)业内开源的模块;(3)程序员自己开发的模块
Python内部提供一个 sys 的模块,其中的 sys.argv 用来捕获执行执行python脚本时传入的参数
#!/usr/bin/env python
# -*- coding: utf-8 -*- import sys print sys.argv
执行
C:\Users\Administrator>python D:\python_test\hello.py arg1 arg2 arg3
['D:\\python_test\\hello.py', 'arg1', 'arg2', 'arg3']
6.pyc文件
执行Python代码时,如果导入了其他的 .py 文件,那么,执行过程中会自动生成一个与其同名的 .pyc 文件,该文件就是Python解释器编译之后产生的字节码。
代码经过编译可以产生字节码;字节码通过反编译也可以得到代码。
7.变量
声明变量
#!/usr/bin/env python name='egon'
变量定义的规则:
变量名只能是 字母、数字或下划线的任意组合
变量名的第一个字符不能是数字
关键字不能声明为变量名
变量的赋值
#!/usr/bin/env python name1='lhf'
name2='egon'
变量指向被赋值的内容
#!/usr/bin/env python name1='lhf'
name2=name1
变量的存在意义:程序执行的本质在于处理一系列状态的变化,变量就用来保存某一种状态,比如level=1,age=10,name='egon',变量的值的修改(即变量的赋值)就是一种状态的变化,不同的数据类型用来表示不同的状态,比如数字类型用来表示人的年纪,等级,身份证等等
#!/usr/bin/env python #一个游戏人物的等级由1级升到2级
level=1
level=2 #一个游戏帐号的密码由'123'改成'456'
passwd='123'
passwd='456' #一个人的名字有'xyp'改成'xuyaping'
name='xyp'
name='xuyaping'
8.输入
#!/usr/bin/env python name=input('请输入用户名:')
print(name)
执行
C:\Users\Administrator>python D:\python_test\hello.py
请输入用户名:xuyaping
xuyaping
输入密码时,如果想要不可见,需要利用getpass 模块中的 getpass方法,即:
#!/usr/bin/env python import getpass
password=getpass.getpass('请输入密码:')
print(password)
执行
C:\Users\Administrator>python D:\python_test\hello.py
请输入密码:
123456
9.流程控制和缩进
python中子内容统一被缩进相同的空格数,如1,2,3,4,5,6,,7,8等随意设定,只需要统一即可。
但python中默认缩进4个空格
例子一、用户登陆验证
#!/usr/bin/env python name=input('请输入用户名字:')
password=input('请输入密码:') if name == 'xuyaping' and password == '123':
print('xuyaping login success')
else:
print('用户名或密码错误')
例子二、根据用户输入内容输出其权限
#!/usr/bin/env python
#根据用户输入内容打印其权限 '''
xuyaping --> 超级管理员
tom --> 普通管理员
jack,rain --> 业务主管
其他 --> 普通用户
'''
name=input('请输入用户名字:') if name == 'xuyaping':
print('超级管理员')
elif name == 'tom':
print('普通管理员')
elif name == 'jack' or name == 'rain':
print('业务主管')
else:
print('普通用户')
10.while循环
10.1:基本循环
while 条件: # 循环体 # 如果条件为真,那么循环体则执行
# 如果条件为假,那么循环体不执行
10.2:break
break用于退出所有循环
while True:
print "123"
break
print "456"
10.3:continue
continue用于退出当前循环,继续下一次循环
while True:
print "123"
continue
print "456"
五、本节练习
1、使用while循环输出1 2 3 4 5 6 8 9 10
2、求1-100的所有数的和
3、输出 1-100 内的所有奇数
4、输出 1-100 内的所有偶数
5、求1-2+3-4+5 ... 99的所有数的和
6、用户登陆(三次机会重试)
#题一
count=1
while count <= 10:
if count == 7:
count+=1
continue
print(count)
count+=1 count=1
while count <= 10:
if count != 7:
print(count)
count+=1 #题目二
res=0
count=1
while count <= 100:
res+=count
count+=1
print(res) #题目三
count=1
while count <= 100:
if count%2 != 0:
print(count)
count+=1 #题目四
count=1
while count <= 100:
if count%2 == 0:
print(count)
count+=1 #题目五
res=0
count=1
while count <= 99:
if count%2 == 0:
res-=count
else:
res+=count
count+=1
print(res) #题目六
count=0
while count < 3:
name=input('请输入用户名:')
password=input('请输入密码:')
if name == 'xuyaping' and password == '123':
print('login success')
break
else:
print('用户名或者密码错误')
count+=1
python(1)- 初识python的更多相关文章
- python day1:初识Python(一)
一.Python 简介: Python免费.开源,面向对象的解释型语言,其语法简洁,在使用中无需考虑如何管理内存等底层问题,并且支持在linux,windows等多平台运行,Python的标准库很强大 ...
- 和我一起学python,初识python (life is short ,we need python)
作者:tobecrazy 出处:http://www.cnblogs.com/tobecrazy 欢迎转载,转载请注明出处.thank you! 由于项目需要(并非因为life is short), ...
- Python基础 初识Python
机器码 机器码(machine code),学名机器语言指令,有时也被称为原生码(Native Code),是电脑的CPU可直接解读的数据. 通常意义上来理解的话,机器码就是计算机可以直接执行,并且执 ...
- python - num1 -初识python
一.了解python python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC ...
- python基础-初识Python和不同语言之间的区别
一.Python的创始人谁? Python之父:吉多·范罗苏姆GuidovanRossum 吉多·范罗苏姆是一名荷兰计算机程序员,他作为Python程序设计语言的作者而为人们熟知.在Python社区, ...
- 【python】-- 初识python
Python 安装 windows: 1.下载安装包 https://www.python.org/downloads/ 2.安装 默认安装路径:C:\python27 3.配置环境变量 [右键计算机 ...
- Python 1 初识python
1.Python介绍 Python是一种高级语言,与JAVA C# 等同.可以编写各种应用程序,每种语言都有其合适的应用场景.而Python 的优势在于更加人性化.简便的语法规则,以及针对各种具体场景 ...
- 【python】初识python的问题
这两天利用晚上时间简单的了解了一下python语言,在Mac上和Windows上都安装了python,对比两个平台,还是发现在mac上体验比较好一点.安装的版本好像也不一样,语法还有点小区别.简单的对 ...
- 【python】初识python
[命名规范] 模块名:小写字母,单词之间用_分割:例如:ad_stats.py 包名:和模块名一样 类名:单词首字母大写:例如:ConfigUtil 全局变量名:大写字母,单词之间用_分割:例如:NU ...
- Python 基础 --初识Python
python的起源 python是一门 解释型弱类型编程语言. 特点: 简单.明确.优雅 python的解释器 CPython. 官方提供的. 内部使用c语言来实现 PyPy. 一次性把我们的代码解释 ...
随机推荐
- 设计模式(十六)迭代器模式 Iterator
什么时候需要用到迭代器模式? 有许多中方法,可以把对象堆起来放进一个集合(可以是数组.堆栈.列表.哈希表,等等). 每一种类型的集合,都有各自适用的时机.但是某个时间段,客户端可能希望去遍历这个集合. ...
- Welcome-to-Swift-19类型嵌套(Nested Types)
枚举类型常被用于实现特定类或结构体的功能.也能够在有多种变量类型的环境中,方便地定义通用类或结构体来使用,为了实现这种功能,Swift允许你定义类型嵌套,可以在枚举类型.类和结构体中定义支持嵌套的类型 ...
- hdu 3685 多边形重心+凸包
Rotational Painting Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Othe ...
- 2015-2016 ACM-ICPC Northeastern European Regional Contest (NEERC 15)
NEERC 15 题解1 题解2 官方题解
- 洛谷P1469找筷子
题目描述 经过一段时间的紧张筹备,电脑小组的“RP餐厅”终于开业了,这天,经理LXC接到了一个定餐大单,可把大家乐坏了!员工们齐心协力按要求准备好了套餐正准备派送时,突然碰到一个棘手的问题,筷子!CX ...
- css3 背景图动画一
一 实现背景图循环播放 @keyframes mlfly { 0%{ background-position:0 0; } 100%{ background-position:210px 0; } } ...
- AxureRP8 实现时间功能
利用AxureRP8中空间的动态面板的状态改变时间设置文本的值,从而实现时间功能,如下内容. 1.新建index页面,如已有index页面忽略这步即可. 2.拖入一个文本标签,将文本标签的名称命名为: ...
- WEB学习-CSS行高、字体,链接的美化以及背景
行高和字号 CSS中,所有的行,都有行高.盒模型的padding,绝对不是直接作用在文字上的,而是作用在“行”上的. 单行文本垂直居中 文本在行里面是居中 其中,行高:盒子高; 需要注意的是,这个小技 ...
- js-无缝向上滚动
这种节奏经常用在相同布局内容多的地方,列如排行榜,新闻等地方.为了效率,在此做个笔记 HTML: <div id="divgd"> <div id="b ...
- Java原来如此-反射机制
在Java运行时环境中,对于任意一个类,能知道这个类有哪些属性和方法.对于任意一个对象,能调用它的任意一个方法.这种动态获取类的信息以及动态调用对象的方法的功能来自于Java语言的反射(Reflect ...