本章内容:

1.Python的种类

2.Python的环境

3.Python入门(解释器、编码、pyc文件、脚步传入参数、变量、输入、流程控制与缩进、while循环)

4.练习题

Python的种类

· Cpython

 Python的官方版本,使用C语言实现,使用最为广泛,CPython实现会将源文件(py文件)转换成字节码文件(pyc文件),然后运行在Python虚拟机上。

· Jython

 Python的Java实现,Jython是一种完整的语言,会将Python代码动态编译成Java字节码,然后在JVM虚拟机上运行。

· IronPython

  Python的C#实现,IronPython会将Python代码动态编译成C#字节码,然后在CLR虚拟机上运行(与Jython类似)。

· PyPy(特殊)

  用Python实现的Python动态编译器,比Cpython更加灵活。

· RubyPython、Brython...

Python的对应关系和执行流程如下图:

PyPy 在Python的基础上对Python的字节码进一步处理,从而提升执行速度!

Python的环境

Windows:

下载地址:https://www.python.org/downloads/

Linux:

大多主流发行版的Linux都预装了Python,使用“python -V”命令查看当前版本,再结合所用Linux版本的软件包安装方式进行升级即可

Python入门

1.‘Hello World’

#Python2中的写法
print "Hello World" #Python3中的写法
print('Hello World')
#虽然有两种写法,但是Python2支持Python3的这种写法,只记住下边这种就可以了

2.执行(解释器)、退出

AWM@AWM-PC MINGW32 ~/Desktop
$ cat test.py
#!/usr/bin/env python
print("Hello World") AWM@AWM-PC MINGW32 ~/Desktop
$ python test.py
Hello World

程序可以跑出SystemExit异常来请求退出。

3.编码

Python解释器在加载.py文件时会对内容进行编码(默认ASCII)

ASCII(American Standard Code for Information Interchange,美国标准信息交换代码)是基于拉丁字母的一套编码系统,主要用于显示现在英语和其他西欧语言,最多只能用8(即一个字节)位来表示一个字符,即2**8=256,所以ASCII码最多只能表示256个字符。

显然ASCII码无法将世界上各种文字和符号全都表示,所以,就需要新出一种可以代表所有字符和符号的编码,即Unicode

Unicode(统一码、万国码、单一码)是一种在计算机上使用的字符编码。Unicode是为了解决传统的字符编码方案的局限而产生的,他为每种语言中的每个字符谁定了同意并且唯一的二进制编码,规定所有的字符和符号最少由16位来表示(2个字节),即:2**16=65536(这是最少,可以更多)

UTF-8,是对Unicode编码的压缩和优化,他不再规定最少使用2个字节,而是将所有的字符和符号进行分类:ASCII码中的内容用1个字节保存、欧洲的字符用2个字节保存,东亚字符用3个字节保存...

告诉Python解释器用什么编码来执行代码:

# -*- coding:utf-8 -*-   #Python3中程序已默认解决此问题,也就是说在Python3中不需要写这句话

4.注释

单行注释:#awm

多行注释:'''awm'''

#AWM
'''
AWM
AWM
AWM
AWM
'''

5.pyc文件

执行Python代码时,如果导入了其他的.py文件,那么执行过程中会自动生成一个与其同名的 .pyc文件,该文件就是Python解释器编译之后产生的字节码。

6.脚本传入参数

Python有大量的模块,从而使开发Python程序非常简洁。

类库有包括三种:

  · Python内部提供的模块

  · 业内开源的模块

  · 程序员自己开发的模块

Python内部提供一个sys的模块,其中的sys.argv用来捕获执行执行Python脚本时传入的参数

#!/usr/bin/env python
#-*- coding:utf-8 -*- import sys print("sys.argv")

7.变量

· 声明变量

#!/usr/bin/env python
#-*- coding:utf-8 -*- #声明变量name,值为"Nick"
name = "Nick"

变量的作用:昵称代指内存里某个地址中保存的内容

变量定义的规则:

  · 变量名只能是字母、数字、下划线的任意组合

  · 变量名的第一个字符不能是数字

  · 以下关键字不能声明为变量名

    ['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']

· 变量的赋值

#!/usr/bin/env python
#-*- coding:utf-8 -*- name1 = "Nick"
name2 = "Suo"

#!/usr/bin/env python
#-*- coding:utf-8 -*- name1 = "Nick"
name2 = name1

8.输入

输入用户名

#!/usr/bin/env python
#-*- coding:utf-8 -*- #将用户输入的内容赋值给name变量
name = raw_input("请输入用户名:")
print name #python3的写法
name = input("请输入用户名:")
print(name)

输入密码时,如果想要不可见,需要利用getpass 模块中的getpass方法,即:

#!/usr/bin/env python
#-*- coding:utf-8 -*- import getpass pwd = getpass.getpass("请输入密码:")
print(pwd)

9.流程控制与缩进

用户登录验证与输出相应内容

#!/usr/bin/env python
#-*- coding:utf-8 -*- import getpass name = input("请输入用户名:")
pwd = getpass.getpass("请输入密码:") if name == "nick" and pwd == "nick":
print("Welcome, nick.")
elif name == "Suo" and pwd == "Suo":
print("Welcome, Suo.")
elif name == "test":
print("Hi, test.")
else:
print("Sorry, please try angin.")

10.while循环

· 基本循环

while 条件:

    # 循环体

    # 如果条件为真,那么循环则执行
# 如果条件为假,那么循环不执行

. break

break 用于退出当层循环

#!/usr/bin/env python
#-*- coding:utf-8 -*- num = 1
while num <6:
print(num)
num+=1
break
print("end")

· continue

continue 用于退出当前循环,继续下一次循环

#!/usr/bin/env python
#-*- coding:utf-8 -*- num = 1
while num <6:
print(num)
num+=1
continue
print("end")

练习题

求1-2+3-4+5...99的所有数的和

方法一:

num = 1
num2 = 2
num3 = num - num2
while True:
num+=2
num2+=2
num3 = num3 + num
if num == 99:
break
num3 = num3 - num2
print(num3)

方法二:

sum = 1
s = 0
while True:
s = s + sum
if sum == 99:
break
sum+=2 sum1 = 0
s1 = 0
while True:
s1 = s1 + sum1
if sum1 == 98:
break
sum1 += 2 print(s - s1)

方法三:

sum = 0
start = 1
while start < 100:
temp = start % 2
if temp == 1:
sum = sum +start
else:
sum = sum - start
start += 1
print(sum)

方法四:

#排除99,剩余49组1-2
print(49*(1-2)+99)

Python_入门的更多相关文章

  1. python_入门_三级菜单

    '''程序:三级菜单要求:1.打印省.市.县三级菜单2.可返回上一级3.可随时退出程序''' # -*- coding: utf-8 -*- # __author__ = 'qi' prov_city ...

  2. Python_入门第一篇【持续更新...】

    1.准备 准备电脑 和 分区 1.准备配置稍高的电脑(后后期需要装虚拟机),分辨率1920*1080 2.分区: C→系统 D→Project E→软件安装盘 F→其他 准备编辑器 1.Sublime ...

  3. python 入门教程

    转载自:http://www.crifan.com/files/doc/docbook/python_beginner_tutorial/release/html/python_beginner_tu ...

  4. Angular2入门系列教程7-HTTP(一)-使用Angular2自带的http进行网络请求

    上一篇:Angular2入门系列教程6-路由(二)-使用多层级路由并在在路由中传递复杂参数 感觉这篇不是很好写,因为涉及到网络请求,如果采用真实的网络请求,这个例子大家拿到手估计还要自己写一个web ...

  5. ABP入门系列(1)——学习Abp框架之实操演练

    作为.Net工地搬砖长工一名,一直致力于挖坑(Bug)填坑(Debug),但技术却不见长进.也曾热情于新技术的学习,憧憬过成为技术大拿.从前端到后端,从bootstrap到javascript,从py ...

  6. Oracle分析函数入门

    一.Oracle分析函数入门 分析函数是什么?分析函数是Oracle专门用于解决复杂报表统计需求的功能强大的函数,它可以在数据中进行分组然后计算基于组的某种统计值,并且每一组的每一行都可以返回一个统计 ...

  7. Angular2入门系列教程6-路由(二)-使用多层级路由并在在路由中传递复杂参数

    上一篇:Angular2入门系列教程5-路由(一)-使用简单的路由并在在路由中传递参数 之前介绍了简单的路由以及传参,这篇文章我们将要学习复杂一些的路由以及传递其他附加参数.一个好的路由系统可以使我们 ...

  8. Angular2入门系列教程5-路由(一)-使用简单的路由并在在路由中传递参数

    上一篇:Angular2入门系列教程-服务 上一篇文章我们将Angular2的数据服务分离出来,学习了Angular2的依赖注入,这篇文章我们将要学习Angualr2的路由 为了编写样式方便,我们这篇 ...

  9. Angular2入门系列教程4-服务

    上一篇文章 Angular2入门系列教程-多个组件,主从关系 在编程中,我们通常会将数据提供单独分离出来,以免在编写程序的过程中反复复制粘贴数据请求的代码 Angular2中提供了依赖注入的概念,使得 ...

随机推荐

  1. Raid类型

    raid0:两块磁盘同时写入raid1:一块磁盘写入,另一块磁盘做备份,利用率50%raid5:两块磁盘同时写入两块磁盘都有内容,第三块磁盘做效应,n/n-1的利用率raid6:四块磁盘两块磁盘做存储 ...

  2. matlab 中max函数用法

    Matlab中max函数在矩阵中求函数大小的实例如下:(1)C = max(A)返回一个数组各不同维中的最大元素.如果A是一个向量,max(A)返回A中的最大元素.如果A是一个矩阵,max(A)将A的 ...

  3. 2017年2月16日 分析下为什么spring 整合mybatis后为啥用不上session缓存

    因为一直用spring整合了mybatis,所以很少用到mybatis的session缓存. 习惯是本地缓存自己用map写或者引入第三方的本地缓存框架ehcache,Guava 所以提出来纠结下 实验 ...

  4. iframe的优缺点?

    1.`<iframe>`优点: 解决加载缓慢的第三方内容如图标和广告等的加载问题 Security sandbox 并行加载脚本 2.`<iframe>`的缺点: *ifram ...

  5. Spark源码分析之Spark-submit和Spark-class

    有了前面spark-shell的经验,看这两个脚本就容易多啦.前面总结的Spark-shell的分析可以参考: Spark源码分析之Spark Shell(上) Spark源码分析之Spark She ...

  6. python 库安装笔记

    python 库安装笔记 zoerywzhou@163.com http://www.cnblogs.com/swje/ 作者:Zhouwan 2017-2-22 友情提示 安装python库的过程中 ...

  7. android列表停止滚动,加载图片,较为通用的一种办法

    在Adapter的itemView里面,判断列表是否在滚动中,其实是比较麻烦的,可能耦合性会比较严重. 所以考虑了下,是否能在itemView里面,检测列表的滚动状态,并监听停止状态加载图片,实现it ...

  8. 字符串查找算法总结(暴力匹配、KMP 算法、Boyer-Moore 算法和 Sunday 算法)

    字符串匹配是字符串的一种基本操作:给定一个长度为 M 的文本和一个长度为 N 的模式串,在文本中找到一个和该模式相符的子字符串,并返回该字字符串在文本中的位置. KMP 算法,全称是 Knuth-Mo ...

  9. jquery与js的区别与基础操作

    一.什么是 jQuery jQuery是一个JavaScript库,它通过封装原生的JavaScript函数得到一整套定义好的方法.它的作者是John Resig,于2006年创建的一个开源项目,随着 ...

  10. KoaHub.JS基于Node.js开发的mysql的node.js驱动程序代码

    mysql A node.js driver for mysql. It is written in JavaScript, does not require compiling, and is 10 ...