Day-3: Python基础

  • 数据类型和变量

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

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

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编码。过程如下:

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

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

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

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

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

  Python中格式化输出:

‘....‘ % (....)

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

  常用的占位符有:

  %d 整数

  %f 浮点数

  %s 字符数

  %x 十六进制整数

  • 三种特殊的数据类型

  • list

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

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

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

  • dict

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

>>> d = {‘Michael‘: 95, ‘Bob‘: 75, ‘Tracy‘: 85}
>>> d[‘Michael‘]
95

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

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

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

>>> d.get(‘Thomas‘)    # 返回None的时候Python的交互式命令行不显示结果。
>>> d.get(‘Thomas‘, -1)
-1
>>> d.pop(‘Bob‘)
75
>>> d
{‘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在判断和循环语句中,均是以:来作为缩进标识。

  判断语句的完整形式:

if <条件判断1>:
    <执行1>
elif <条件判断2>:
    <执行2>
elif <条件判断3>:
    <执行3>
else:
    <执行4>

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

  for...in循环如下:

names = [‘Michael‘, ‘Bob‘, ‘Tracy‘]
for name in names:
    print name

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

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

sum = 0
n = 99
while n > 0:
    sum = sum + n
    n = n - 2
print sum

  最后raw_input()需要注意下,

birth = raw_input(‘birth:‘)

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

birth = int(raw_input(‘birth:‘))

  

时间: 09-05

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

linux+jmeter+python基础+抓包拦截

LINUX 一 配置jdk 环境 *需要获取root权限,或者切换为root用户 1.windows下载好,去 http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 官方网站下载jdk(linux相应版本) 2.在usr目录下创建java路径文件夹 [root bin]cd /usr mkdir java 3.将jdk-8u60-linux-x64.tar.gz放到刚才创建的文件夹下

Python基础教程(第九章 魔法方法、属性和迭代器)

本文内容全部出自<Python基础教程>第二版,在此分享自己的学习之路. ______欢迎转载:http://www.cnblogs.com/Marlowes/p/5437223.html______ Created on Marlowes 在Python中,有的名称会在前面和后面都加上两个下划线,这种写法很特别.前面几章中已经出现过一些这样的名称(如__future__),这种拼写表示名字有特殊含义,所以绝不要在自己的程序中使用这样的名字.在Python中,由这些名字组成的集合所包含的方法称

Python基础入门 (一)

一.关于版本的选择 Should i use Python 2 or Python 3 for my development activity?转载自Python官网 Short version: Python 2.x is legacy, Python 3.x is the present and future of the language Python 3.0 was released in 2008. The final 2.x version 2.7 release came out

Python 基础 - Day 4 Learning Note - Generator 生成器

列表生成器/列表解析 list comprehension 简单灵活地创建列表,通常和lambda(), map(), filter() 一起使用 通过列表生成式, 直接创建列表.但是,收到内容限制,列表容量肯定是有限的.而且,创建一个包含100万个元素的列表,不仅占用很大的存储空间,如果我们仅仅需要访问几个元素,那其他的就白占空间.列表生成器能够一边循环一边计算,大大节省大量的空间.是生成器的一种. 只有调用,才能生成. 不支持切片操作,只能通过__next()___一个个取数字. 基本语法

python基础教程(第二版)

开始学习python,根据Python基础教程,把里面相关的基础章节写成对应的.py文件 下面是github上的链接 python基础第1章基础 python基础第2章序列和元组 python基础第3章使用字符串 python基础第4章字典 python基础第5章循环 python基础第6章函数和魔法参数 python基础第7章类 python基础第8章异常 python基础第9章魔法方法.属性和迭代器 python基础第11章文件 python基础第12章GUI(wxPython) pytho

python基础周作业

python基础周作业 1.执行python脚本的两种方法 脚本前面直接指定解释器 在脚本开始前声明解释器 2.简述位,字节的关系 每一个字节占用八个比特位 3, 简述ascii.unicode.utf- ‐8.gbk的关系 utf--‐8 <-- unicode <-- gbk <-- ascii 按此方向兼容 4..请写出"李杰"分别用utf- ‐8和gbk编码所占的位数 "李杰" 占用utf -8 占6字节 , gbk 占用4字节 5.pyt

Python基础(二)

Python基础(二) Python 运算符(算术运算.比较运算.赋值运算.逻辑运算.成员运算) 基本数据类型(数字.布尔值.字符串.列表.元组.字典.set集合) for 循环 enumrate range和xrange 编码与进制转换 Python 运算符 1.算术运算: 2.比较运算: 3.赋值运算: 4.逻辑运算:  5.成员运算: 基本数据类型 1.数字 int(整型) 在32位机器上,整数的位数为32位,取值范围为-2**31-2**31-1,即-2147483648-2147483

Python之路【第三篇】:Python基础(二)

Python之路[第三篇]:Python基础(二) 内置函数 一 详细见python文档,猛击这里 文件操作 操作文件时,一般需要经历如下步骤: 打开文件 操作文件 一.打开文件 1 文件句柄 = file('文件路径', '模式') 注:python中打开文件有两种方式,即:open(...) 和  file(...) ,本质上前者在内部会调用后者来进行文件操作,推荐使用 open. 打开文件时,需要指定文件路径和以何等方式打开文件,打开后,即可获取该文件句柄,日后通过此文件句柄对该文件操作.

Python之路【第二篇】:Python基础(一)

Python之路[第二篇]:Python基础(一) 入门知识拾遗 一.作用域 对于变量的作用域,执行声明并在内存中存在,该变量就可以在下面的代码中使用. 1 2 3 if 1==1:     name = 'wupeiqi' print  name 下面的结论对吗? 外层变量,可以被内层变量使用 内层变量,无法被外层变量使用 二.三元运算 1 result = 值1 if 条件 else 值2 如果条件为真:result = 值1如果条件为假:result = 值2 三.进制 二进制,01 八进

Python学习笔记(一)python基础与函数

1.python基础 1.1输入与输出 输出 用print加上字符串,就可以打印指定的文字或数字 >>> print 'hello, world' hello, world >>> print 300 300 >>> print 100+200 300 print语句也可以跟上多个字符串,用逗号","隔开,就可以连成一串输出: >>> print 'The quick brown fox', 'jumps over