#/usr/bin/env python

#coding=utf-8 #有汉字的时候加上

if 1+2:  # 非零非空为真 在if语句中,只会执行一个分支,其他不执行,一个if语句中只有一个else

>>> 10/3

3

>>> 10/3.0

3.3333333333333335

>>> 10//3

3

>>> 10//3.0

3.0

>>> 10%3

1

>>> 2**3

8

>>> 2<<3

16

>>> 2>>3

0

>>> 3&2

2

>>> 3|2

3

>>> 3^2

1

不支持多目运算符  (? : )

#{1..100 +    从1加到100

#$ seq -s + 1 99 | bc }

$python #交互式

>>> range(1,10)

[1,2,3,4,5,6,7,8,9]

>>>range(1,10,2)

[1,3,5,7,9]

>>>range(10,2,2)

[]

>>>range(10,2,-1):

[10,9,8,7,6,5,4,3]

>>>li = []  >>>li = list()

>>>li = [1,2,3,4,5['a','b']]

>>>li[2]

3

>>>li[5][0]

'a'

>>>li[6]

indexEoor: list out of range

>>>len(li)

5

>>>for i in li:

print i

1

2

3

4

5

['a','b']

>>>2 in li

ture

>>>del li[0]

>>>li

[2,3,4,5['a','b']]

#(莫有返回值时,就是在原有的列表的改变,如果有返回值,想使用必须先赋值才能用,

#原值不改变)

处理一组有序项目的数据结构

列表是可变类型的数据

使用[]表示列表,包含多个以逗号分隔的数字或字串

列表操作: 内存储存空间相同

索引和切片

添加

删除

修改

查找

>>> li = [1,2,3,4]

>>>li.append('a')

>>>li

[1,2,3,4,'a']

>>>li.append([5,6])

>>li

[1,2,3,4,'a',[5,6]]

>>>li2 = ['hello','world']

>>>li2.extend(li)

li bubian

>>>li2

['hello','world',1,2,3,4,'a',[5,6]]

>>>li = [1,2,3]

>>>li2 = [4,5,6]

>>>li+li2

[1,2,3,4,5,6]

>>>li.insert(1,100)

>>>li

[1,100,2,3]

>>>li.insert(-1,10)

>>>li   # 从后边插入

[1,100,2,10,3]

>>>li.insert(100,10) == li.insert(len(li),10) #规范

[1,100,2,3,10]

>>>li.insert(1,[1,2,3])

>>>li

[1,[1,2,3],100,2,3,10]

>>>li.remove(100)

>>>li

[1,[1,2,3],2,3,10]#只删除一个索引,并且先删除第一个

>>>li.pop()

>>>li

[1,[1,2,3],2,3]

>>>li.count(1)#统计1出现的次数

1

>>>li.index(1)  # 统计1的索引

>>>li = [2,1,4,3,6,5]

>>>li.sort(li)

>>>li

[1,2,3,4,5,6] #排序

>>>li.reverse()

>>>li

[6,5,4,3,2,1]

>>>li2 = li[2:4]

[4,3]

>>>li[:3]

[6,5,4]

>>>li[3:]

[3,2,1]

>>>li[:3:2]

[1,3]

>>li[2:4:-1]

[]

>>>li[4:2:-1]

>>>li = [1,2,3,4]

>>>li2 = li

>>>id(li) == id(li2)

>>> li.append(1)

>>>li

[1,2,3,4,1]

>>>li2

[1,2,3,4,1]

python 列表赋值是引用赋值,相当在内存中引用2个索引,改变其中一个,另一个也改变

>>>li = [1,2,3,4]

>>>li2 = li[:]

id(li) != id(li2)

可以用切片解决

列表里面的内容可以改变 t[0]=100

支持下标索引的度是有顺序的

元组

使用()圆括号中用逗号分割的项目定义

元组的值不可改变

内存存储空间是不同的

>>>t = (1,2,3) #元组里面的值 t[0]=**不改变 支持分片 用于固定ip 固定端口

>>> t [1:3]

(2,3)

>>>t = (1,2,3,[1,2,3,4])

>>>t[3][0] = 100

>>> t

(1,2,3,[100,2,3,4])

集合 s = {1,2,3}里面必须要有内容

集合支持去重复的值,根据 集合里面的值的hash值,所以集合里面的值都是可以被哈希的

集合是无需的,所以不能用下标索引查找,不支持切片

>>>s = set()

>>>type(s)

<type 'set'>

>>>s = {} #不能这样定义

>>>type(s)

<type 'dict'> #字典

>>>s = {1,1,1,2,3,4,5}

>>>s

set([1,2,3,4,5]) # 集合的元素不重复

>>s[0]

Traceback (most recent call last):

File "<stdin>", line 1, in <module>

TypeError: 'set' object does not support indexing

>>>

>>> s = {1,2,3,[1,2]}

Traceback (most recent call last):

File "<stdin>", line 1, in <module>

TypeError: unhashable type: 'list'

>>>

>>> s = {1,2,3,(1,2)}

>>> s

set([(1, 2), 1, 2, 3])

>>>

>>> li = [1,2,3,4,5]

>>> s = set(li)

>>> s

set([1, 2, 3, 4, 5])

>>> type s

File "<stdin>", line 1

type s

^

SyntaxError: invalid syntax

>>> type(s)

<type 'set'>

>>>     #list 变 set

>>> li2 = list (s)# set 变 list

>>> li2

[1, 2, 3, 4, 5]

>>>

>>> li = list(set([1,2,3,4]))

>>> li

[1, 2, 3, 4]

>>>

>>> s

set([1, 2, 3, 4, 5])

>>> s.add(100)

>>> s1 = ['huli',4]

>>> s.update(s1)

>>> s

set([1, 2, 3, 4, 5, 'huli', 100])

>>>

>>> s2 = {1,2,7}

>>> s.update(s2)

>>> s

set([1, 2, 3, 4, 5, 7, 'huli', 100])

>>> s4 = (8,9)

>>> s.update(s4)

>>> s

set([1, 2, 3, 4, 5, 7, 8, 9, 'huli', 100])

>>>s.remove(1)

>>>s

set([2,3,4,5,7,8,9,'huli',100])

>>>s.discard(3)

>>>s

set([2,4,5,7,8,9,'huli',100])

>>>s.pop()

>>>s

set([4,5,7,8,9,'huli',100])

>>>s.clear()

>>>s

set([])

python一切皆对象

>>>s={1,2,3,4,5}

>>>s1={2,4,5,6}

>>> s1.difference(s) # ==  >>>s1-s

set([6])

>>> s1

set([2, 3, 5, 6])

>>> s

set([1, 2, 3, 4, 5])

>>>

>>> s1.intersection(s)  # == >>>s1&s

set([2, 3, 5])

>>> s1.difference_update(s)

>>> s1

set([6])

>>>s = {1,2,3}

>>>s1 = {2,3,4}

>>>s.isdisjoint(s1)

False

>>>s.issubset(s1)

False

交集 intersection  &

并集 |    都不修改原内容

判断是不是有交集  s.isdisjoint(s1) 莫有ture

s1是不是s的子集  s1.issubset(s)

字典

是 python 中唯一的映射类型(哈希表)无序的

字典对象是可变的,但是字典的键必须是不可变对象,并且一个字典中可以使用不

同类型的键值

keys()返回键列表

values()返回值列表

items()返回包含键值对的元组

>>> type(d)

<type 'dict'>

>>> d = {'name':'tom','age':10}

>>> d2 = {'name':'xpg','name':'qq'}

>>> d2

{'name': 'qq'}

>>> d2 = {'name':'xpg',{1,2}:'qq'}

Traceback (most recent call last):

File "<stdin>", line 1, in <module>

TypeError: unhashable type: 'set'

>>> d2 = {'name':'xpg',[1,2]:'qq'}

Traceback (most recent call last):

File "<stdin>", line 1, in <module>

TypeError: unhashable type: 'list'

>>> d2 = {'name':'xpg',(1,2):'qq'}

>>>

>>> d2

{(1, 2): 'qq', 'name': 'xpg'}

>>> d2.keys()

[(1, 2), 'name']

>>>

>>> d2.iterkeys()

<dictionary-keyiterator object at 0x17720a8>

>>> t = d2.iterkeys()

>>> t.next()

(1, 2)

>>> t.next()

'name'

>>> t.next()

Traceback (most recent call last):

File "<stdin>", line 1, in <module>

StopIteration

>>>

>>> d2.values()

['qq', 'xpg']

>>> d2

{(1, 2): 'qq', 'name': 'xpg'}

>>>

>>> for i in d2.iterkeys():

...     print i

...

(1, 2)

name

>>>

>>> d2.items()

[((1, 2), 'qq'), ('name', 'xpg')]

>>> for x,y in d2.items():

...     print x,y

...

(1, 2) qq

name xpg

>>>

>>> d['name']

'tom'

>>> for i in d.keys():

...     print i,d[i]

...

age 10

name tom

>>>

>>> d2.get('name')

'xpg'

>>> d2.get('num',9)

9

>>> d2

{(1, 2): 'qq', 'name': 'xpg'}

>>>

>>> d2.has_key('name')

True

>>> d2.has_key('name2')

False

>>>

>>> d

{'age': 10, 'name': 'tom'}

>>> d['phone'] = 111

>>> d

{'phone': 111, 'age': 10, 'name': 'tom'}

>>> d['name'] = 'jerry'

>>> d

{'phone': 111, 'age': 10, 'name': 'jerry'}

>>>

>>> d2 = {'c':2,'s':3}

>>> d3 = d2

>>> id(d3)

23222480

>>> id(d2)

23222480

>>> d3

{'c': 2, 's': 3}

>>> d2

{'x': 4, 'c': 2, 's': 3}

>>> d4 = d2.copy()

>>> d4

{'x': 4, 'c': 2, 's': 3}

>>> d2

{'x': 4, 'c': 2, 's': 3}

>>> id(d4)

23213856

>>> id(d2)

23222480

>>>

>>> li

[1, 2, 3]

>>> j = 0

>>> for i in li:

...     li[j] = i+1

...     j += 1

...

>>> li

[2, 3, 4]

>>> li

[2, 3, 4]

>>> li2 = [i for i in li]

>>> li2

[2, 3, 4]

>>> id(li)

24512560

>>> id(li2)

24512632

>>> li

[2, 3, 4]

>>> li2 = [i+1 for i in li]

>>> li2

[3, 4, 5]

>>> id(li2)

24580968

>>> id(li)

24512560

>>> li3 = []

>>> for i in li:

...     li3.append(i+1)

...

>>> li3

[3, 4, 5]

迭代器  特点 可以直接执行 .net  每执行一次有一个结果

for i in 迭代器:遇到stop退出

迭代器性能高于for 循环

for 循环作用就是自动执行迭代器

生成器 it = (i+1 for i in li)不执行 当执行.net时才执行  相当于迭代器

>>> li

[2, 3, 4]

>>> it = (i+1 for i in li)

>>>

>>> it

<generator object <genexpr> at 0x176d730>

>>> it.next()

3

>>> it.next()

4

>>> it.next()

5

>>> it.next()

Traceback (most recent call last):

File "<stdin>", line 1, in <module>

StopIteration

>>>

列表是一次性全给你

当数据量大时,生成器性能好

列表解析性能远高于for循环

迭代器(惰性)性能远高于与列表解析

>>> li

[2, 3, 4]

>>> li2 = [i+1 for i in li if i%2 ==0 ]

>>> li2

[3, 5]

>>> li3 = []

>>> for i in li:

...     if i %2 == 0:

...             li3.append(i+1)

...

>>> li3

[3, 5]

>>>

转载于:https://blog.51cto.com/11726212/1789071

python 基础相关推荐

  1. f是一个python内部变量类型,Python基础变量类型——List浅析

    Python使用list 一.list Python内置的一种数据类型是列表:list.list是一种有序的集合,可以随时添加和删除其中的元素. 比如,列出班里所有同学的名字,就可以用一个list表示 ...

  2. python 等号报错_Python学习----Python基础

    Python基础 一.数据类型和变量 1.在Python中,等号=是赋值语句,可以把任意数据类型赋值给变量,同一个变量可以反复赋值,而且可以是不同类型的变量. 例如: a =520# a是整数prin ...

  3. python基础——继承与派生、组合

    python基础--继承与派生 1 什么是继承: 继承是一种创建新的类的方式,在python中,新建的类可以继承自一个或者多个父类,原始类成为基类或超累,新建的类成为派生类或子类 1.1 继承分为:单 ...

  4. Python学习笔记1 Python基础

    第1章 Python基础 1.1 Python概述及版本介绍 1.Python是一种面向对象的解释型计算机程序设计语言(解释型语言源代码->解释器逐行解释每一句源代码) 2.优点:高级语言.可移 ...

  5. python基础---元组、字典、函数、文件、异常

    文章目录 python基础---元组.字典.函数.文件.异常 Tuple(元组) 常用操作 dict(字典) 函数 文件 异常 python基础-元组.字典.函数.文件.异常 Tuple(元组) tu ...

  6. 快速掌握Python的捷径-Python基础前传(1)

    文: jacky(朱元禄) 开文序 最近看新闻,发现高考都考Python了,随着人工智能的火热,学数据科学的人越来越多了!但对于数据行业本身来说,现象级的火热,这并不是什么好事.  方丈高楼平地起,无 ...

  7. Python培训教程之Python基础知识点梳理

    Python语言是入门IT行业比较快速且简单的一门编程语言,学习Python语言不仅有着非常大的发展空间,还可以有一个非常好的工作,下面小编就来给大家分享一篇Python培训教程之Python基础知识 ...

  8. python基础04

    python基础04 python2在编译安装时,可以通过参数 -----enable----unicode=ucs2 或 -----enable--unicode=ucs4 分别用于指定使用2个字节 ...

  9. 刻意练习:Python基础 -- Task12. 模块

    背景 我们准备利用17天时间,将 "Python基础的刻意练习" 分为如下任务: Task01:变量.运算符与数据类型(1day) Task02:条件与循环(1day) Task0 ...

  10. 刻意练习:Python基础 -- Task11. 魔法方法

    背景 我们准备利用17天时间,将 "Python基础的刻意练习" 分为如下任务: Task01:变量.运算符与数据类型(1day) Task02:条件与循环(1day) Task0 ...

最新文章

  1. MLIR(Multi-Level Intermediate Representation Compiler)架构 Infrastructure
  2. Spring Boot怎么样处理静态资源(静态资源映射规则)_Web开发
  3. java客户端访问kafka
  4. java影院购票系统开题报告,开题报告-网上电影院购票系统的设计与实现.doc
  5. 自动化部署之jenkins及简介
  6. tnsname.ora 个参数解释
  7. jquery 遍历无限极树_jQuery parent()和children()树遍历函数示例
  8. POJ2826 An Easy Problem?!
  9. abrt-hook-ccpp: Saved core dump of pid 12224导致dn挂掉问题
  10. 常用评价指标及其Python实现
  11. 与孩子一起学编程07章
  12. java英语单词查询,输入一个单词根据字典查询单词意思
  13. UWB测距及定位原理
  14. android 添加前景色
  15. redefinition of class解决
  16. 微擎mysql和redis_微擎如何开启redis,redis开启方法详解
  17. MIDI音符输入技巧
  18. 设置-关于手机里显示IMEI号和MEID。
  19. es5和es6声明类的区别/es5和es6继承的区别
  20. 2级c语言高级应用程序,全国计算机等级考试二级教程-C语言程序设计.pdf

热门文章

  1. [Cocos2d-x]视差滚屏效果的实现
  2. apache-2.4.x 编译安装方法
  3. 在 Ubuntu 下安装 Discuz! 7.0
  4. 贴别人的一个文件加密程序!
  5. Xmas is coming....
  6. php删除指定图片吗,PHP 去除图片指定颜色
  7. 代码如何获取单反相机拍摄的照片_看看如何拍摄出更好的照片
  8. 引人遐想,用 Python 获取你想要的 “某个人” 摄像头照片
  9. windows操作系统_如何正确使用windows操作系统?
  10. php 批量导出excel文件,PHPEXCEL批量导出