python入门编程之基础
Python, 是一种面向对象、解释型计算机程序设计语言。Python语法简洁清晰,特色之一是强制用空白符作为语句缩进。Python的设计哲学是“优雅”、“明确”、“简单”。
Python是一门具有强类型(即变量类型是强制要求的)、动态性、隐式类型(不需要做变量声明)、大小写敏感(var和VAR代表了不同的变量)以及面向对象(一切皆为对象)等特点的编程语言。
Python可用来干嘛?
系统编程 :提供API(Application Programming Interface应用程序编程接口),能方便进行系统维护和管理,Linux下标志性语言之一,是很多系统管理员理想的编程工具。
图形处理:有PIL、Tkinter等图形库支持,能方便进行图形处理。
数学处理:NumPy扩展提供大量与许多标准数学库的接口。
文本处理:python提供的re模块能支持正则表达式,还提供SGML,XML分析模块,许多程序员利用python进行XML程序的开发。
网络编程:提供丰富的模块支持sockets编程,能方便快速地开发分布式应用程序。很多大规模软件开发计划例如Zope,Mnet 及BitTorrent. Google都在广泛地使用它。
Web编程:应用的开发语言,支持最新的XML技术。
1.Python基础
1.1Python数据类型 操作符
操作符:
标准算术操作符:+ - * / //取整 %取余 **乘方
标准比较操作符:< <= > >= == != <>
逻辑操作符:and or not
基本数值类型:
int (有符号整数): 通常被称为只是整数或整数,是正或负整数,不带小数点。
long (长整数 ): 或长,是无限大的整数,这样写整数,后面跟着一个大写或小写的L。
float (浮点实数值) : 或浮点数,表示实数,并写入一个小数点分隔的整数部分和小数部分。浮点数也可以是科学记数法,用e或E表示的功率10 (2.5e2 = 2.5 x 102 = 250).
complex (复数) : 形式如 a + bJ,其中a和b是浮点和J(或j)表示-1的平方根(这是一个虚数)。 a是数的实部,b是虚部。Python编程不使用复杂的数字。
数据类型-字符串:
Python中可以使用一对单引号''或者双引号""生成字符串。
字符串是属于不可变数据类型,就是通过字符串方法返回的都是一个新的字符串。
索引
对于一个有序序列,可以通过索引的方法来访问对应位置的值。字符串便是一个有序序列的例子,Python使用 [] 来对有序序列进行索引。索引是从 0 开始的,Python还引 入了负索引值的用法,即从后向前开始计数。
s = "hello world"
s[0] 输出“h”
s[-2]输出“l”
分片
分片用来从序列中提取出想要的子序列,其用法为:var[lower:upper:step]
其范围包括 lower ,但不包括 upper ,即 [lower, upper), step 表示取值间隔大小,如果没有默认为1。
s = "hello world"
s[1:3] 输出“el”
s[1:-2]输出“ello wor”
每隔两个取一个值:
s[::2] 输出“hlowrd”
跟java一样Python也有很多对字符串进行操作的方法:
s.split(),将s按照空格(包括多个空格,制表符\t,换行符\n等)分割,并返回所有分割得到的字符串。
line = "1 2 3 4 5"
numbers = line.split()
print numbers 输出['1', '2', '3', '4', '5']
s.replace(part1, part2),将字符串s中指定的部分part1替换成想要的部分part2,并返回新的字符串。
s = "hello world"
s.replace('world', 'python')
输出 “hello python”
s.upper(),方法返回一个将s中的字母全部大写的新字符串。
s.lower(),方法返回一个将s中的字母全部小写的新字符串。
s.strip(),返回一个将s两端的多余空格除去的新字符串。
s.lstrip(),返回一个将s开头的多余空格除去的新字符串。
s.rstrip(),返回一个将s结尾的多余空格除去的新字符串。
当然还有很多的方法
强制转换为字符串:
str(ob),强制将ob转化成字符串。
repr(ob),也是强制将ob转化成字符串
数据类型-列表:
在Python中,列表是一个有序的序列。
列表用一对 [] 生成,中间的元素用 , 隔开,其中的元素不需要是同一类型,同时列表的长度也不固定。
列表通过[]来定义:
a = [1, 2.0, 'hello']
print a
列表操作,与字符串一样列表也支持很多操作,列表属于可变数据类型,可以通过索引来改变值。
以下是关于列表操作的一些方法:
count(ob) ,返回列表中元素 ob 出现的次数。
index(ob) ,返回列表中元素 ob 第一次出现的索引位置,如果 ob 不在列表中会报错。
append(ob) ,将元素 ob 添加到列表 的最后。
extend(lst), 将序列 lst 的元素依次添加到列表的最后
insert(idx, ob), 在索引 idx 处插入 ob ,之后的元素依次后移。
remove(ob), 会将列表中第一个出现的 ob 删除,如果 ob 不在列表中会报错。
pop(idx), 会将索引 idx 处的元素删除,并返回这个元素。
sort() ,会将列表中的元素按照一定的规则排序
reverse() ,会将列表中的元素从后向前排列。
数据类型-元祖:
与列表相似,元组Tuple也是个有序序列,但是元组是不可变的,用()生成。
t = (10, 11, 12, 13, 14)
列表转换为元组:
a = [10, 11, 12, 13, 14]
tuple(a)
由于元组是不可变的,所以只能有一些不可变的方法,例如计算元素个数 count 和元素位置 index ,用法与列表一样。
a.count(10)
a.index(12)
列表与元组的速度比较:
元组的生成速度会比列表快很多,迭代速度快一点,索引速度差不多。
数据类型-字典:
字典 dictionary ,在一些编程语言中也称为 hash , map ,是一种由键值对组成的数据结构。
Python使用 `{}` 或者 `dict()` 来创建一个空的字典:
a = {}
a = dict()
出于hash的目的,Python中要求这些键值对的键必须是不可变的,而值可以是任意的Python对象。
字典方法:
d.get(key, default = None)返回字典中键 key 对应的值,如果没有这个键,返回 default 指定的值(默认是 None )
d.pop 方法删除并返回字典中键 key 对应的值,如果没有这个键,返回 default 指定的值(默认是 None )
d.keys()返回一个由所有键组成的列表;
d.values() 返回一个由所有值组成的列表;
d.items() 返回一个由所有键值对元组组成的列表;
数据类型-集合:
列表和字符串都是一种有序序列,而集合 set 是一种无序的序列。
因为集合是无序的,所以当集合中存在两个同样的元素的时候,Python只会保存其中的一个(唯一性);同时为了确保其中不包含同样的元素,集合中放入的元素只能是不可变的对象(确定性)。
可以用set()函数或者{}方式生成集合:
a = set([1, 2, 3, 1])
a = {1, 2, 3, 1}
Python还提供了一种叫做不可变集合的数据结构,与集合不同的是,不可变集合一旦创建就不可以改变。
不可变集合的一个主要应用是用来作为字典的键。
使用 frozenset 来进行创建:
s = frozenset([1, 2, 3, 'a', 1])
集合方法:
s.add(a),用来向集合添加单个元素。
s.update(seq),用来向集合添加多个元素。
s.remove(ob),从集合s中移除元素ob,如果不存在会报错。
s.pop(),由于集合没有顺序,不能像列表一样按照位置弹出元素,所以pop 方法删除并返回集合中任意一个元素,如果集合中没有元素会报错。
1.2Python判断语句 循环语句
循环语句:while
while expression: # expression 条件表达式
while_suite # 根据条件循环执行的语句
i = 0
total = 0
while i < 1000000:
total += i
i += 1
print total
循环语句:for:
for循环会遍历完<sequence>中所有元素为止
for <variable> in <sequence>:
<indented block of code>
Python中的for循环与java的for循环不太一样,不是计数循环,更像迭代循环,如:
total = 0
for i in xrange(100000):
total += i
print total
continue 语句:遇到 continue 的时候,程序会返回到循环的最开始重新执行。
values = [7, 6, 4, 7, 19, 2, 1]
for i in values:
if i % 2 != 0:
# 忽略奇数
continue
print i/2
break 语句:遇到 break 的时候,程序会跳出循环,不管循环条件是不是满足。
条件语句:if elif else
if expression1: # 蓝色部分可以单独用
if_suite
elif expression2: # 绿色部分可以省略,也可以重复多个
elif_suite
else expression3: # 用elif,最后必须有else
else_suite # Python没有switch-case
1.3Python文件读写操作
读文件:
使用 open 函数或者 file 函数来读文件,使用文件名的字符串作为输入参数
f = file('test.txt')
f = open('test.txt')
print f.read() #读取文件所有内容
print f.readlines() #按照行读入内容
f.close() #读完文件需要把文件关闭
import os #导入os包
os.remove('test.txt') #删除刚才创建的文件
写文件:
使用 open 函数或者 file 函数来写文件,使用文件名的字符串作为输入参数,使用 w 模式时如果文件不存在会被创建,如果文件已经存在, w 模式会覆盖之前写的所 有内容。还有追加模式 a ,追加模式不会覆盖之前已经写入的内容,还可以使用读写模式 w+。
# 默认 r# r:读取;w:写入;a:添加;+:读写;b:二进制访问
s=open("e://data.txt",'w')
s.write("hello")
s.close()
print open("e://data.txt").read()
1.3Python异常 try& except 块
异常捕捉:
Python编译时会检查语法错误,运行时检测其他错误。
当遇到错误,Python解释器就引发异常,并显示详细信息。
try:
…… # 可能会出现异常的代码
……
except IOError, e:
print ‘出错原因’, e
finally #不管 try 块有没有异常, finally 块的内容总是会被执行,而且会在抛出异常前执行
也可以用raise有意引发一个异常
自定义异常:
定义了一个继承自 ValueError 的异常类,异常类一般接收一个字符串作为输入,并把这个字符串当作异常信息
class CommandError(ValueError):
pass
python的基础操作大概就是这些,如果有错误或者有遗漏希望大家指出。
python入门编程之基础的更多相关文章
- Python入门 常量 注释 基础数据类型 用户输入 流程控制
Python入门 一.常量 在Python中,不像其他语言有绝对的常量,修改会报错,在Python中有个约定俗成的规定--常量就是将变量名大写. 尽量保持不更改的一种量 , 这个常量有是干什么的呢 其 ...
- Python网络编程(基础总结、 入门经典)
Linux下文件类型: bcd -lsp b(块.设备文件) c(字符设备文件) d(目录) -(普通文件) ...
- Python编程:从入门到项目实践高清版附PDF百度网盘免费下载|Python入门编程免费领取
百度网盘:Python编程:从入门到项目实践高清版附PDF免费下载 提取码:oh2g 第一部分 基础知识第1章 起步 21.1 搭建编程环境 21.1.1 Python 2和Python 3 21 ...
- python网络编程——socket基础篇
python的网络编程比c语言简单许多, 封装许多底层的实现细节, 方便程序员使用的同时, 也使程序员比较难了解一些底层的东西. 1 TCP/IP 要想理解socket,首先得熟悉一下TCP/IP协议 ...
- python 入门,最基础语法集合100行!!
月开始一直咸到现在,博客难产 心里特别特别愧疚,如此懈怠,怎么对的起我那六个粉丝呢!!!他们一定正日夜翘首以盼,等着我更新博客呢.于是我赶紧到盘里找找看以前的存货 不好意思,拿错了,是这个 我pyth ...
- Python入门编程中的变量、字符串以及数据类型
//2018.10.10 字符串与变量 1. 在输出语句中如果需要出现单引号或者双引号,可以使用转义符号\,它可以将其中的歧义错误解释化解,使得输出正常: 2. 对于python的任何变量都需要进行赋 ...
- python 网络编程(网络基础之网络协议篇)
前言 C/S B/S 架构 client<----->server browser<--->server 学习socket编程就是要编写一个客户端软件和服务端软件,然后实现服 ...
- Python网络编程之基础
计算机网络基础 网络到底是什么?计算机之间如何通信的? 早期:联机 以太网:局域网与交换机 ******广播 主机之间“一对所有”的通讯模式,网络对其中每一台主机发出的信号都进行无条件复制并转发, 所 ...
- python入门编程之三级菜单编程
菜单实现功能输入一层显示下一层菜单不论在哪层输入b返回上一层不论在哪层输入q退出菜单此代码通过利用字典的知识可以实现_Author_ = 'jc'data = { '北京':{ '昌平':{ '沙河' ...
随机推荐
- Ionic2开发笔记(2)创建子页面及其应用
1. 当你第一次产生ionic2应用程序,这是生成的项目结构 ├── ├── config.xml 这包含配置应用程序的名称,和包名,将被用于我们的应用程序安装到一个实际的设备. ├── h ...
- 2620: [Usaco2012 Mar]Haybale Restacking
2620: [Usaco2012 Mar]Haybale Restacking Time Limit: 5 Sec Memory Limit: 128 MBSubmit: 201 Solved: ...
- 使用Eclipse/MyEclipse开发Java程序
集成开发环境(IDE)是一类软件 将程序开发环境和程序调试环境集合在一起,提高开发效率 下载eclipse安装包网址:http://www.eclipse.org/downloads/ **MyEcl ...
- 同步 VS 异步
同步请求资源 请求msdn上的一个页面计算页面大小 static void Main(string[] args) { string url = "https://docs.microsof ...
- Java 集合的理解(持续更新......)
一.集合的由来 通常,我们的程序需要根据程序运行时才知道创建多少个对象.但若非程序运行,程序开发阶段,我们根本不知道到底需要多少个数量的对象,甚至不知道它的准确类型.为了满足这些常规的编程需要,我们要 ...
- ubuntu 虚拟机vm virtualbox 不能打开 win7
ubuntu某方面总有些不便,下载个虚拟机装个win7 但是第二次打开的时候就出现了安装是的场景: 原因很简单: 是因为安装了之后没有把win7的镜像文件移除,每次打开时会检测cd/dvd文件/(is ...
- python 接口自动化测试--代码实现(八)
用例读入数据库: #! /usr/bin/python # coding:utf-8 import sys,os from Engine import DataEngine reload(sys) s ...
- Selenium自动化脚本开发总结
Selenium Selenium 是ThoughtWorks专门为Web应用程序编写的一个验收测试工具. Selenium测试直接运行在浏览器中,就像真正的用户在操作一样.支持的浏览器包括IE.Mo ...
- CCF 201609-4 交通规划
问题描述 试题编号: 201609-4 试题名称: 交通规划 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 G国国王来中国参观后,被中国的高速铁路深深的震撼,决定为自己的国家 ...
- SpringMVC参数校验(针对`@RequestBody`返回`400`)
SpringMVC参数校验(针对@RequestBody返回400) 前言 习惯别人帮忙做事的结果是自己不会做事了.一直以来,spring帮我解决了程序运行中的各种问题,我只要关心我的业务逻辑,设计好 ...