• 数据类型和变量

  Python中直接处理的数据类型主要有以下几种:

  1. 整数:Python可以直接处理任意大小的整数,无论正负,都可以直接输入处理;
  2. 浮点数:浮点数也叫做小数。有普通写法,如:1.1,也有描述很大或者很小的科学计数法,有e代替10,有1.3e6、1.2e-5等;
  3. 字符串:用‘’和“”表示的都是字符串,如‘abc’,“ABC”。但是如果字符串中包含’或者”,则注意只包含’,外面用“”括起来;只包含”的,外面用‘’括起来。和c中一样,\是转义字符,但是使用比较麻烦。如果‘和”都包含的话,可以在字符串前面加上r表示原意,内部的转义字符就都没用了。如果想表示多行内容,可以用
  1. '''line1
  2. line2
  3. line3'''

  4. 布尔值:两个值,分别是True和False。布尔值可以进行的运算以下几种:

  • and运算。只有左右两值均为True时,结果才为True。注意:1 and 2时,如果1为False,则2没有进行计算,因为结果已经确定为False,称为短路现象;
  • or运算。左右两值任一为True时,结果就为True。注意:同上,由于短路现象,只要     1 or 2中1为True,2就不会计算,结果直接为True;
  • not运算。为单目运算,True变为False,False变成True。

  5. None:空值,它不能理解为0,0是有意义的,而None是特殊的空值。

变量:

Python中变量没有类型的限制,定义时不用声明是什么类型,直接使用即可。

  • Python字符串和编码

Python 2.7中所有字符默认是ASCII编码,要表示Unicode编码(多国语言)时,使用:

  1. u'...'

特别的由于ASCII编码中没有中文,所以字符串中有中文时,务必再前面加上u。(Python3.0改为‘....’和u‘....’都是Unicode编码了)  

  但是,ASCII编码使用1个字节,Unicode编码一般使用两个字节,特别的甚至4个字节。为了节省空间,Unicode编码又变成了可变的Unicode编码,即utf-8编码。下面两个图是记事本编辑和浏览网页时编码形式的转换:

可以看出,在存储和传输时,以utf-8编码节省时间,但是使用时选择Unicode编码,保证正确地显示和编辑。

  再说Python 2.7中ASCII编码加上u的前缀变成Unicode编码后用encode(‘utf-8’)方法,变成utf-8编码,反过来,utf-8编码经过decode(‘utf-8’)解码成Unicode编码。过程如下:

  1. >>> u'中文'.encode('utf-8')
  2. '\xe4\xb8\xad\xe6\x96\x87' #注意变成了一个字节的编码格式,utf-8
  3. >>> '\xe4\xb8\xad\xe6\x96\x87'.decode('utf-8')
  4. u'\u4e2d\u6587' #变成2个字节编码,Unicode
  5. >>> print '\xe4\xb8\xad\xe6\x96\x87'.decode('utf-8')
  6. 中文 #先由utf-8变成Unicode再打印

  考虑到Python的跨平台运行,通常文件开头要加上这两行:

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

  第一行注释是为了告诉Linux/OS X系统,这是一个Python可执行程序,Windows系统会忽略这个注释;

  第二行注释是为了告诉Python解释器,按照UTF-8编码读取源代码,否则,你在源代码中写的中文输出可能会有乱码。

  Python中格式化输出:

  1. '....' % (....)

  字符串中有几个占位符,后面的括号就有几个变量或者常量。

  常用的占位符有:

  %d 整数

  %f 浮点数

  %s 字符数

  %x 十六进制整数

  • 三种特殊的数据类型

  • list

  list是一种有序的集合,可以随时增减元素。用[]表示,索引是从0开始的,最后一个是个数-1.他有如下方法:

  • len():获取list元素的个数
  1. >>> len(classmates)
  2. 3
  • append():list末尾增加一个元素
  1. >>>list1 = [1, 2, 3]
  2. >>>list1.append(4)  # 将元素添加在最后
  3. >>>list1
  4. >>>[1, 2, 3, 4]
  • insert():list插入一个元素
  1. >>>list1 = [1, 2, 3]
  2. >>>list1.insert(2,6)  # 第一个参数是插入的位置,第二个是元素
  3. >>>print list1
  4. >>>[1, 2, 6, 3]
    >>>print list1.insert(7)  # 只有一个参数时,作为元素插入在最后
    >>>[1, 2, 6, 3, 7]
  • pop():删除一个元素
  1. >>> classmates.pop() # 无参数时删除最后一个元素
  2. 'Adam'
  3. >>> classmates
  4. ['Michael', 'Jack', 'Bob', 'Tracy']
  5. >>> classmates.pop(1) # 删除索引位置为该参数的元素
  6. 'Jack'
  7. >>> classmates
  8. ['Michael', 'Bob', 'Tracy']
  • tuple

  tuple,名元祖。与list相似,但是tuple一旦建立,其中的元素无法更改,也没有append()等方法。它的意义在于确保元素无法改变,保证安全性。索引时,使用(),也是从0开始。

  • dict

  全称dictionary,使用键-值(key-value)存储,具有极快的查找速度。

  1. >>> d = {'Michael': 95, 'Bob': 75, 'Tracy': 85}
  2. >>> d['Michael']
  3. 95

  dict是由Hash算法通过key计算出value的存储位置,所以key的值不变的。特点是

  1. 查找和插入的速度极快,不会随着key的增加而增加;
  2. 需要占用大量的内存,内存浪费多。

  有get()和pop()两种方法:

  1. >>> d.get('Thomas') # 返回None的时候Python的交互式命令行不显示结果。
  2. >>> d.get('Thomas', -1)
  3. -1
  1. >>> d.pop('Bob')
  2. 75
  3. >>> d
  4. {'Michael': 95, 'Tracy': 85}
  • set

  set和dict相似,唯一区别仅在于没有存储对应的value。

  set需要提供一个list作为输入集合,显示的set([1, 2, 3])只是告诉你这个set内部有1,2,3这3个元素,显示的[]不表示这是一个list。

  set中用add(key)方法添加元素到set中;

  set中用remove(key)方法删除元素。

  • 条件判断和循环

  python中对于缩进特别严格,它是以同样的缩进来作为块执行的。

  其中,python在判断和循环语句中,均是以:来作为缩进标识。

  判断语句的完整形式:

  1. if <条件判断1>:
  2. <执行1>
  3. elif <条件判断2>:
  4. <执行2>
  5. elif <条件判断3>:
  6. <执行3>
  7. else:
  8. <执行4>

  循环语句有两种,一种是for...in循环,一种是while循环。

  for...in循环如下:

  1. names = ['Michael', 'Bob', 'Tracy']
  2. for name in names:
  3. print name

  把names中的每个元素带入name依次做循环。

  while循环则是:只要条件满足,就不断循环,条件不满足时退出循环。

  1. sum = 0
  2. n = 99
  3. while n > 0:
  4. sum = sum + n
  5. n = n - 2
  6. print sum

  最后raw_input()需要注意下,

  1. birth = raw_input('birth:')

  里面的字符串‘birth’是在运行时在终端上显示birth: ,但是实际输入年龄的数字,传递给birth的是一个字符串,如果要传输integer,应改为:

  1. birth = int(raw_input('birth:'))

注:本文为学习廖雪峰Python入门整理后的笔记

Day-3: Python基础的更多相关文章

  1. python之最强王者(2)——python基础语法

    背景介绍:由于本人一直做java开发,也是从txt开始写hello,world,使用javac命令编译,一直到使用myeclipse,其中的道理和辛酸都懂(请容许我擦干眼角的泪水),所以对于pytho ...

  2. Python开发【第二篇】:Python基础知识

    Python基础知识 一.初识基本数据类型 类型: int(整型) 在32位机器上,整数的位数为32位,取值范围为-2**31-2**31-1,即-2147483648-2147483647 在64位 ...

  3. Python小白的发展之路之Python基础(一)

    Python基础部分1: 1.Python简介 2.Python 2 or 3,两者的主要区别 3.Python解释器 4.安装Python 5.第一个Python程序 Hello World 6.P ...

  4. Python之路3【第一篇】Python基础

    本节内容 Python简介 Python安装 第一个Python程序 编程语言的分类 Python简介 1.Python的由来 python的创始人为吉多·范罗苏姆(Guido van Rossum) ...

  5. 进击的Python【第三章】:Python基础(三)

    Python基础(三) 本章内容 集合的概念与操作 文件的操作 函数的特点与用法 参数与局部变量 return返回值的概念 递归的基本含义 函数式编程介绍 高阶函数的概念 一.集合的概念与操作 集合( ...

  6. 进击的Python【第二章】:Python基础(二)

    Python基础(二) 本章内容 数据类型 数据运算 列表与元组的基本操作 字典的基本操作 字符编码与转码 模块初探 练习:购物车程序 一.数据类型 Python有五个标准的数据类型: Numbers ...

  7. Python之路【第一篇】python基础

    一.python开发 1.开发: 1)高级语言:python .Java .PHP. C#  Go ruby  c++  ===>字节码 2)低级语言:c .汇编 2.语言之间的对比: 1)py ...

  8. python基础之day1

    Python 简介 Python是著名的“龟叔”Guido van Rossum在1989年圣诞节期间,为了打发无聊的圣诞节而编写的一个编程语言. Python为我们提供了非常完善的基础代码库,覆盖了 ...

  9. python基础之文件读写

    python基础之文件读写 本节内容 os模块中文件以及目录的一些方法 文件的操作 目录的操作 1.os模块中文件以及目录的一些方法 python操作文件以及目录可以使用os模块的一些方法如下: 得到 ...

  10. python基础之编码问题

    python基础之编码问题 本节内容 字符串编码问题由来 字符串编码解决方案 1.字符串编码问题由来 由于字符串编码是从ascii--->unicode--->utf-8(utf-16和u ...

随机推荐

  1. 【YII】Yii入门

    1. 入门博客 http://blog.csdn.net/zm2714/article/category/1359776/2 2. 创建运行demo http://blog.csdn.net/zhou ...

  2. Java 枚举7常见种用法(转)

    JDK1.5引入了新的类型——枚举.在 Java 中它虽然算个“小”功能,却给我的开发带来了“大”方便. 用法一:常量 在JDK1.5 之前,我们定义常量都是: public static fianl ...

  3. web前端开发面试题(未完待续)

    一.HTML与XHTML的不同:1)XHTML元素必须被正确地嵌套 2)元素必须被关闭   如:<h1>--</h1>关闭 3)标签名必须用小写字母 4)XHTML文档必须有根 ...

  4. phpMyAdmin安装部署

    phpMyAdmin 是一个用PHP编写的软件工具,可以通过web方式控制和操作MySQL数据库.通过phpMyAdmin 可以完全对数据库进行操作,例如建立.复制和删除数据等等.如果使用合适的工具, ...

  5. word2vec原理(二) 基于Hierarchical Softmax的模型

    word2vec原理(一) CBOW与Skip-Gram模型基础 word2vec原理(二) 基于Hierarchical Softmax的模型 word2vec原理(三) 基于Negative Sa ...

  6. java对excel表格的上传和下载处理

    Excel表格文件的上传和下载,java中涉及到文件肯定会有io流的知识. 而excel文件就要涉及到poi技术,而excel的版本包括:2003-2007和2010两个版本, 即excel的后缀名为 ...

  7. Premiere&After Effects的实时预览插件开发

    一.介绍 Adobe Premiere和After Effects在影视编辑.渲染领域已经得到广泛应用.全景视频在相应工具拼接好后也可以导入Premiere/After Effects后也可进行剪辑. ...

  8. 【学习OpenCV】——2.4对图像进行平滑处理

    作者基于WIN10+VS2015+OpenCV3.0.0 (本人在学习的时候参考了xiahouzuoxin 的有关文章,在此感谢 ) 图像平滑与图像模糊是同一概念,主要用于图像的去噪.平滑要使用滤波器 ...

  9. Eclipse中将hadoop项目放在集群中运行

    1.加入配置文件到项目源码目录下(src) <configuration> <property> <name>mapreduce.framework.name< ...

  10. [技术] OIer的C++标准库 : 字符串库<string>

    引入 上次我在博客里介绍了OI中可能用到的STL中的功能, 今天我们接着来发掘C++标准库中能为OI所用的部分. 众所周知, OI中经常用到字符串相关的处理, 这时善用字符串库可以使一些操作更加简洁易 ...