Python入门

一、第一句python代码

很多语言的第一句python代码都是以“你好,世界”开始的,那么我们的python也是如此。

在 /home/dev/ 目录下创建 hello.py 文件,内容如下:

print "hello,world"

View Code

执行 hello.py 文件,即: python /home/dev/hello.py

python内部执行过程如下:

二、解释器

上一步中执行 python /home/dev/hello.py 时,明确的指出 hello.py 脚本由 python 解释器来执行。

如果想要类似于执行shell脚本一样执行python脚本,例: ./hello.py,那么就需要在 hello.py 文件的头部指定解释器,如下:

#!/usr/bin/env python

print "hello,world"

View Code

如此一来,执行: ./hello.py 即可。

注:执行前需给予 hello.py 执行权限,chmod 755 hello.py

三、内容编码

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 文件中的代码时,会对内容进行编码(默认ascill),如果是如下代码的话:

报错:ascii码无法表示中文

#!/usr/bin/env python

print "你好,世界"

View Code

上面代码执行之后的报错提示:SyntaxError: Non-ASCII character '\xe4'

改正:应该显示的告诉python解释器,用什么编码来执行源代码,即:

#!/usr/bin/env python#-*- coding: utf-8 -*-

print "你好,世界"

View Code

四、注释

当行注视:# 被注释内容

多行注释:""" 被注释内容 """ 或者 ''' 被注释内容 '''.

五、执行代码传入参数

Python有大量的模块,从而使得开发Python程序非常简洁。类库有包括三中:

Python内部提供的模块

业内开源的模块

程序员自己开发的模块

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

#!/usr/bin/env python#-*- coding: utf-8 -*-

__author__ = 'weibinf'

importsysprint sys.argv

View Code

六、PYC文件

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

ps:代码经过编译可以产生字节码;字节码通过反编译也可以得到代码。

七、变量

1、声明变量

#!/usr/bin/env python#-*- coding: utf-8 -*-

__author__ = 'weibinf'name= "weibinf"

View Code

上述代码声明了一个变量,变量名为: name,变量name的值为:"weibinf"

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

变量定义的规则:

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

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

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

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

2、变量的赋值

#!/usr/bin/env python#-*- coding: utf-8 -*-

__author__ = 'weibinf'name1= "weibinf"name2= "xs"

#!/usr/bin/env python#-*- coding: utf-8 -*-

__author__ = 'weibinf'name1= "weibinf"name2= name1

八、输入

#!/usr/bin/env python#-*- coding: utf-8 -*-

__author__ = 'weibinf'

#将用户输入的内容赋值给 name 变量

name = raw_input("请输入用户名:")#打印输入的内容

print name

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

#!/usr/bin/env python#-*- coding: utf-8 -*-

__author__ = 'weibinf'

importgetpass#将用户输入的内容赋值给 name 变量

pwd = getpass.getpass("请输入密码:")#打印输入的内容

print pwd

九、流程控制和缩进

需求一、用户登陆验证

#提示输入用户名和密码

#验证用户名和密码#如果错误,则输出用户名或密码错误#如果成功,则输出 欢迎,XXX!

#!/usr/bin/env python#-*- coding: utf-8 -*-

__author__ = 'weibinf'

importgetpass

name= raw_input('请输入用户名:')

pwd= getpass.getpass('请输入密码:')if name == "weibinf" and pwd == "cmd":print "欢迎,weibinf!"

else:print "用户名和密码错误"

View Code

需求二、根据用户输入内容输出其权限

#根据用户输入内容打印其权限

#weibinf --> 超级管理员#xs--> 普通管理员#weibin --> 业务主管#其他 --> 普通用户

#!/usr/bin/env python#-*- coding: utf-8 -*-

__author__ = 'weibinf'name= raw_input('请输入用户名:')if name == "weibinf":print "超级管理员"

elif name == "xs":print "普通管理员"

elif name == "weibin":print "业务主管"

else:print "普通用户"

View Code

注:

外层变量,可以被内层变量使用

内层变量,无法被外层变量使用

十、初识基本数据类型

1、数字

2是一个整数的例子。

长整数 不过是大一些的整数。3.23和52.3E-4是浮点数的例子。E标记表示10的幂。在这里,52.3E-4表示52.3 * 10-4。

(-5+4j)和(2.3-4.6j)是复数的例子。

int(整型)

在32位机器上,整数的位数为32位,取值范围为-2**31~2**31-1,即-2147483648~2147483647

在64位系统上,整数的位数为64位,取值范围为-2**63~2**63-1,即-9223372036854775808~9223372036854775807

long(长整型)  跟C语言不同,Python的长整数没有指定位宽,即:Python没有限制长整数数值的大小,但实际上由于机器内存有限,我们使用的长整数数值不可能无限大。

注意,自从Python2.2起,如果整数发生溢出,Python会自动将整数数据转换为长整数,所以如今在长整数数据后面不加字母L也不会导致严重后果了。

float(浮点型)  浮点数用来处理实数,即带有小数的数字。类似于C语言中的double类型,占8个字节(64位),其中52位表示底,11位表示指数,剩下的一位表示符号。

complex(复数)

复数由实数部分和虚数部分组成,一般形式为x+yj,其中的x是复数的实数部分,y是复数的虚数部分,这里的x和y都是实数。

注:Python中存在小数字池:-5 ~ 257

2、布尔值

真或假

1 或 0

3、字符串

"hello world"

万恶的字符串拼接:

python中的字符串在C语言中体现为是一个字符数组,每次创建字符串时候需要在内存中开辟一块连续的空,并且一旦需要修改字符串的话,就需要再次开辟空间,万恶的+号每出现一次就会在内从中重新开辟一块空间。

字符串格式化:

#!/usr/bin/env python#-*- coding: utf-8 -*-

__author__ = 'weibinf'name= "weibinf"

print "i am %s" %name#输出: i am weibinf

View Code

注:字符串是 %s;整数 %d;浮点数%f

字符串常用功能:

移除空白

分割

长度

索引

切片

4、列表

创建列表:

#!/usr/bin/env python#-*- coding: utf-8 -*-

__author__ = 'weibinf'name_list= ['weibinf', 'xs', 'weibin']

name_list = list(['weibinf', 'xs', 'weibin'])

View Code

基本操作:

索引

切片

追加

删除

长度

切片

循环

包含

5、元祖

创建元祖:

#!/usr/bin/env python#-*- coding: utf-8 -*-

__author__ = 'weibinf'ages= (11, 22, 33, 44, 55)

ages= tuple((11, 22, 33, 44, 55))

View Code

基本操作:

索引

切片

循环

长度

包含

6、字典(无序)

创建字典:

#!/usr/bin/env python#-*- coding: utf-8 -*-

__author__ = 'weibinf'person= {"name": "weibinf", 'age': 18}

person= dict({"name": "weibinf", 'age': 18})

View Code

常用操作:

索引

新增

删除

键、值、键值对

循环

长度

注:循环,range,continue 和 break

十一、运算

算数运算:

比较运算:

赋值运算:

逻辑运算:

成员运算:

身份运算:

位运算:

#!/usr/bin/env python#-*- coding: utf-8 -*-

__author__ = 'weibinf'a= 60 #60 = 0011 1100

b = 13 #13 = 0000 1101

c =0

c= a & b; #12 = 0000 1100

print "Line 1 - Value of c is", c

c= a | b; #61 = 0011 1101

print "Line 2 - Value of c is", c

c= a ^ b; #49 = 0011 0001

print "Line 3 - Value of c is", c

c= ~a; #-61 = 1100 0011

print "Line 4 - Value of c is", c

c= a << 2; #240 = 1111 0000

print "Line 5 - Value of c is", c

c= a >> 2; #15 = 0000 1111

print "Line 6 - Value of c is", c

View Code

运算符优先级:

更多内容:猛击这里

十二、初识文本的基本操作

打开文件:

file_obj = file("文件路径","模式")

打开文件的模式有:

r,以只读方式打开文件

w,打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。

a,打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。

w+,打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。

读取文件的内容:

#一次性加载所有内容到内存

obj.read()#一次性加载所有内容到内存,并根据行分割成字符串

obj.readlines()#每次仅读取一行数据

for line inobj:print line

写文件的内容:

obj.write('内容')

关闭文件句柄:

obj.close()

python控制软件操作流程_python入门篇之介绍和流程控制(一)相关推荐

  1. python tree结构_Python入门篇-数据结构树(tree)篇

    Python入门篇-数据结构树(tree)篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.树概述 1>.树的概念 非线性结构,每个元素可以有多个前躯和后继 树是n(n& ...

  2. python列表操作程序_Python入门篇(三)之列表

    1.列表定义 names = ["ZhangYang","Guyun","Xiangpeng","Xuliangchen" ...

  3. Python:Excel自动化实践入门篇 甲【留言点赞领图书门票】

    *以下内容为本人的学习笔记,如需要转载,请声明原文链接 微信公众号「ENG八戒」https://mp.weixin.qq.com/s?__biz=MzUxMTgxMzExNQ==&mid=22 ...

  4. python机器人视觉编程——入门篇(下)

    目录 1 全篇概要 2 图像的读取与运算基础 2.1图像的读取 2.1.1 从磁盘的图像(.jpg,.npg,.gif等等)读取 2.1.2 从摄像头里读取图像 2.2图像的运算 2.2.1 图像的数 ...

  5. Python+django建站入门篇(2):素数判断

    本文使用django框架搭建网站,运行之后,获取用户输入的整数,判断是否为素数并进行相应的提示. 本文技术要点: 1)使用django创建网站 2)了解MVC开发模式 3)设置路由 4)接收用户输入 ...

  6. iOS开发Swift篇—(六)流程控制

    iOS开发Swift篇-(六)流程控制 一.swift中的流程控制 Swift支持的流程结构如下: 循环结构:for.for-in.while.do-while 选择结构:if.switch 注意:这 ...

  7. Python基础(二)--数据类型,运算符与流程控制

    目录 Python基础(二)--数据类型,运算符与流程控制 1 数据类型 1.1 Python中的数据类型 1.2 整数类型(int) 1.3 布尔类型 1.4 浮点类型 1.5 复数类型 1.6 类 ...

  8. python语言自学教程-3D图示Python标准自学教程入门篇

    内容简介: Python入门篇教程从最基础的计算机发展史.Python的来源与发展历史开始讲起: 依次讲解python变量与表达式.数据类型.运算符.流程控制语句等,末尾通过课堂练习.课后作业以及微型 ...

  9. python使用rpa需要什么插件_使用Python制作ArcGIS插件基础篇——工具介绍

    ArcGIS从10.0开始支持addin(ArcGIS软件中又叫作加载项)的方式进行插件制作.相对于以往9.x系列,addin的无论是从使用或者编写都更加方便快捷.通过开发语言,可以制作ArcGIS ...

最新文章

  1. SIP协议的传输层原理报文解析(解读rfc3581)(待排版)
  2. Android 中自定义控件和属性(attr.xml,declare-styleable,TypedArray)的方法和使用
  3. 卡壳了~~~ 解决了~~~My Site创建成功了.....
  4. 1003个微生物基因组数据发布
  5. 转载: Tortoise SVN使用方法,简易图解
  6. 你不知道的 JavaScript 笔记——作用域和闭包
  7. 数据库系统概念总结:第三章 SQL
  8. sklearn模型的训练(下)
  9. 处理中文乱码_浅入深出:一次提问引发的深思,从此再也不怕“乱码”问题
  10. java中修改密码_java中用户密码加密时增加和修改的代码
  11. CentOS 7.2下ELK分析Nginx日志生产实战(高清多图)
  12. Ubuntu使用记录:直接使用root账户登录
  13. Unity3D学习1--Unity基础
  14. windows 邮件系统收发163邮件
  15. 雷达信号处理基础 多普勒频移
  16. 淘宝客赚钱方式及怎么入门和推广引流详解
  17. 程序员节日快乐用c语言表达,祝程序员们节日快乐!
  18. 数字逻辑EduCoder课设项目 厨房计时器系统设计 Logisim实现
  19. css实现烟雾效果(css制作汽车尾气排放效果)
  20. The alias ‘TaskType‘ is already mapped to the value ‘com.xxx.entity.Tasktype‘.

热门文章

  1. 音频之声道、采样位宽、采样率转换原理及其代码实现
  2. 计算机认知矫正发展史,计算机认知矫正疗法对儿童认知功能的影响.pdf
  3. 企业如何搭建属于自己的协同办公管理系统?
  4. mysql中的locate,MySQL LOCATE()用法及代码示例
  5. 狂野之刃服务器微信群,魔兽世界怀旧服狂野之刃 狂野之刃获取方法
  6. splash下拉滚动条位置
  7. minSdk deviceSdk的问题
  8. img标签加载src图片,图片逆时针旋转了90度,解决方案
  9. ubuntu训练深度学习模型电脑重启解决方法
  10. 紫晶存储研发核心成员离职,不受影响是真的么?