001第一部分[python基础]

一.python基础

  • 数据类型
原始类型:int float byte

复合类型:
由其他原始类型组合起来的类型list dict cuple
  • 运算符和表达式:
算术运算符:
        加 / 减 / 乘 / 除 / 取模 / 幂 / 地板除
        +    -    *    /     %     **     //

python2 的 除:10 / float(20)

位运算符[二进制之间的运算]:
bin(60) 转换成二进制数int(‘1100‘,2)   将二进制转换成十进制
&   按位与        都为1 才为1    |   按位或      存在1 即为1^   按位异或         相同的为0,不同的为1~   按位取反         正数的补码,反码都是其本身
                负数的补码是:符号位不变,其余各位求反,末位加1 ,既11111
                反码是:符号位为1,其余各位求反,但末位不加1 ,既11110

                假设有一个数~9,计算步骤如下,9=1001
                其补码为01001,
                对其取反10110,这个数是在内存中存放的,现在需要装换成原码,既先减1,然后取反得 
                11010,符号位为1是负数,既-10<<  左移
>>  右移
  • 按位取反:
---正数的补码和反码都是其本身,但是前面要加上正数的符号位 "0"---负数的符号位是"1"负数的补码是:符号位不变,其余各位求反,末位加1负数的反码是:符号位不变,其余各位求反---二进制数在内存中是以补码的形式存放的---60的按位取反计算:

    第一步:
    计算60的 [补码] 和 [反码]:

                原码  补码  反码
        十进制 60
        二进制 111100  0111100 0111100

    第二步:
    取反[取反操作是对补码进行取反]:

                        补码                        
                        1000011

                                反码
                                补码 - 1
                                1000010
                原码                
                1111101
                1 代表是负数                
                111101 转换成十进制为61                
                -61
  • 比较运算符[返回布尔类型]
==  等于
!=  不等于
>   大于
<   小于
  • 逻辑运算符
and     与   同时True才为True
or      或  只要存在True 则为True
not     非  取反

逻辑运算的短路功能:
前面False后面就不会再计算:
1+2 >4 and (2+2) == 4
前面是True就不会再计算后面:
1+2 <4 or (2+2) == 3 
def add(x, y):
    print("%d + %d" %(x, y))    
    return x+y
add(1, 2) > 4 and add(2, 3) == 5
   ...: 
1 + 2
Out[2]: False
def add(x, y):
    print("%d + %d" % (x, y))    
    return x+y
add(1, 2) < 4 and add(2,3) < 6
    ...: 
1 + 2
2 + 3
True
def add(x, y):
    print("%d + %d" % (x, y))    
    return x+y
add(1, 2) < 4 and add(2,3) < 4
...: 
1 + 2
2 + 3
False
  • 其他运算符
=       赋值运算符
in      成员运算符
not in  成员运算符
is      身份运算符, 比较两个元素的id; 列表不能用is 做比较
is not  身份运算符        
is 使用的环境经常拿来判断是不是None;
  • 表达式和优先级
1. 一元高于二元
2. 数值高于逻辑
3. 算术运算高于位运算
4. 乘除高于加减
5. 拿不准时加括号
  • 程序结构
1.  顺序结构
2.  分支结构
3.  循环结构

关于 SWITCH
Python中并没有switch结构,因为‘switch‘结构完全可以由‘if elif else‘语句来实现

switch实现方法:
粗糙版:
#coding:utf8  
#add minus divide using python  
from __future__ import division  
x=1  
y=2  
operator=‘/‘  
result={  "+":x+y,  "-":x-y,  "*":x*y,  "/":x/y  }  
print(result.get(operator))         

改进版:
#!/usr/bin/env python
# -*- encoding:utf-8 -*-
class calculate:
    def __init__(self, x, op, y):
        self.x = x
        self.op = op
        self.y = y
   def count(self):
        result={
        "+":self.x+self.y,
        "-":self.x-self.y,
        "*":self.x*self.y,
        "/":self.x/self.y}
        print(result.get(self.op))
mark = calculate(10,"+",2)
mark.count()

python三元运算

a = 4
b = a if a > 0 else 0
  • RANGE函数
range(x)        [0,x)
range(m, n)     [m, n)
range(m, n, s)  [m,n),步长为s
  • break子句
* 只能出现在循环结构中
* 用于跳出当前循环结构
  • continue子句
* 只能出现在循环结构中
* 用于跳过此次迭代的剩余操作

else子句

循环结构的else子句是python特有的,用于表示一个循环不是经过‘break‘跳出循环,提前结束循环,而是正常退出的,才会执行else中的语句;

二.内置容器:

  • 列表
* list是最常用的线性数据结构
* list是一系列元素的有序组合
* list是可变的

列表的操作:
定义列表:
li = []
li = list()
li = [1, 2, 3]

查看帮助文档:
help(list)
增:append, extend, insert
删:clear, pop, remove
改:reverse, sort
查:count, index
其他:copy

增:
li = []
append:只能一个一个增加
li.append(3)

extend:扩展
li.extend([5,6,7])
li
[3, 5, 6, 7]

insert:位置之前插入
li.insert(0, 0) 在第一个之前插入0

删:
clear:清空列表
li.clear()

remove:从左开始删除指定元素一个,如果删除的元素不存在会报错ValueError
li.remove(3)  删除元素3

pop:删除指定位置元素:如果不存在会报错IndexError
li.pop()    删除最后一个元素
li.pop(3)   删除key是3的元素

改:
reverse:颠倒列表顺序:
sort:从小到大排序:    仅用于简单数字排序
sort(reverse=True) 从大到小排序:

查:
count:显示匹配元素个数
li.count(3)

其他:
index(3):返回指定元素在列表中的位置;如果不存在会报ValueError:
index(value, [start, [stop]]) 

copy: 深拷贝,会生成一个新的list
        赋值是浅拷贝,浅拷贝的数据修改会对原来的list产生影响;

下标操作:
li[1]

li[1] = 10

切片:
li[3:5]:  前面是闭区间  后面是开区间
li[3:]
li[:]  效果和copy是一样的,效率会比copy快;
li[:4] 
li[4:-2]     切到倒数第二个;后面是开区间
li[-4:-1]
li[2:6:2]:  start, stop ,步长
li[6:2:-1]  start,stop ,反向显示,步长为1
li[6:2:-2]  start,stop,反向显示,步长为2
li[::-1]
li[::2]
  • 元组[tuple]
tuple和list大多数地方类似
tuple是不可变结构
tuple只能获取值

定义一个元组:
t = ()
t = tuple()

count:统计元素个数
index:返回指定元素在元组中的位置

下标操作[通过下标获取value]:
t[1]
  • PACKING & UNPACKING
PACKING     :把多个变量的值变成一个元组或者列表,默认是变成元组
UNPACKING   :也可以把一个元组或者列表赋值给多个变量
x, *y = (1, 2, 3, 4)
print(x)
1
print(y)
[2, 3, 4]
*x, y = (1, 2, 3, 4)
print(x)
[1, 2, 3]
print(y)
4
*_ 这个表示赋值给一个不能用的变量:

x, *_, y = (1, 2, 3, 4)
print(x)
1
print(y)
4
x, (y, z) = (1, (2, 3))
print(x)
1
print(y)
2
print(z)
3
  • 集合
集合的含义和数学上集合的含义相同
集合不是线性结构
* 集合元素是唯一的
集合元素是可hash的

集合的操作:
初始化:
s = set()
s = set([1, 2, 3])

增:
s.add(3)                    //添加一个元素
s.update([3, 4, 5, 6])      //集合添加list中的多个元素

删:
remove:     删除,删除不存在的元素会抛出异常;
discard:    删除,删除不存在的元素不会抛出异常;
clear:      清空
pop:        随机删除集合中的一个元素

集合运算:
union                   并集              a | b
intersection            交集              a & b
difference              差集,不可交换的    a - b
symmetric_difference    集合之差的并集     a ^ b

集合判断[返回布尔值]:
issubset    子集
issuperset  超集
isdisjoint
  • 字典
* 字典是一种无序集合
* 字典是一种KV结构
* value可以是任何对象
* key是唯一的
* key必须是可hash对象

字典的操作:
d = dict()
d = {‘a‘:5, ‘b‘:4}
d[‘a‘]

d.keys()
dict_keys([‘b‘, ‘a‘])

遍历 key:
for key in d.keys():
    print(d[key])

遍历 value:
for value in d.values():
    print(value)

遍历key和value:
for key,value in d.iterms():
    print(key, value)
    print(‘%s => %s‘ %(key, value))

d.iterkeys()    返回的是一个生成器;

pop,popitem     用于删除元素
d.pop(‘key‘)    需要指定key,删除不存在的值返回KeyError
d.pop(‘key‘,6)  删除不存在的值将返回 6

增加字典元素:
d[‘c‘] = 7
时间: 2024-08-08 01:27:40

001第一部分[python基础]的相关文章

下载大数据实战课程第一季Python基础和网络爬虫数据分析

python语言近年来越来越被程序相关人员喜欢和使用,因为其不仅简单容易学习和掌握,而且还有丰富的第三方程序库和相应完善的管理工具:从命令行脚本程序到gui程序,从B/S到C/S,从图形技术到科学计算,软件开发到自动化测试,从云计算到虚拟化,所有这些领域都有python的身影:python已经深入到程序开发的各个领域,并且会越来越多的人学习和使用. 大数据实战课程第一季Python基础和网络爬虫数据分析,刚刚入手,转一注册文件,视频的确不错,可以先下载看看:链接:http://pan.baidu

萌新向Python数据分析及数据挖掘 第一章 Python基础 (上)未排版

因word和博客编辑器格式不能完全对接,正在重新排版,2019年1月1日发出第一章完整版 本文将参考<Python编程 从入门到实践>的讲述顺序和例子,加上自己的理解,让大家快速了解Python的基础用法,并将拓展内容的链接添加在相关内容之后,方便大家阅读. 好了!我们开始第一章的学习. 第一章 Python基础 python安装以及环境搭建 python的安装和环境变量的配置通过百度查询即可解决,这里不作赘述. IDE的选择:因为后期需要用来做数据分析,所以直接安装Anaconda会是一个不

萌新向Python数据分析及数据挖掘 第一章 Python基础 第一节 python安装以及环境搭建 第二节 变量和简单的数据类型

本文将参考<Python编程 从入门到实践>的讲述顺序和例子,加上自己的理解,让大家快速了解Python的基础用法,并将拓展内容的链接添加在相关内容之后,方便大家阅读. 好了!我们开始第一章的学习. 第一章 Python基础 第一节 Python安装以及环境搭建 Python的安装和环境变量的配置通过百度查询即可解决,这里不作赘述. IDE的选择:因为后期需要用来做数据分析,所以直接安装Anaconda会是一个不错的选择. Anaconda详细安装使用教程 https://blog.csdn.

萌新向Python数据分析及数据挖掘 第一章 Python基础 第八节 函数

第一章 Python基础 第八节 函数 定义函数 函数 其实就可以理解为外挂,把一些常用的.重复率比较多你又不想重复写的东西写进函数,加上开关实现简化操作 举个简单的例子 1 def greet_user(username): 2 #定义一个叫做"迎接用户"的外挂,让他能直接打印一个问候语,括号里面是函数需要输入的东西,也就是个性化的东西 3 """先是简单的问候语""" 4 print("Hello! "

萌新向Python数据分析及数据挖掘 第一章 Python基础 第九节 类

第一章 Python基础 第九节 类 面向对象编程时,都会遇到一个概念,类,python也有这个概念,下面我们通过代码来深入了解下. 其实类 和函数都是为了节省代码,有了类的的概念,就可以把相同的代码写在父类,子类继承后就可以直接使用,而且通过选择对应的父类就可以直接使用对应父类的内容. 创建和使用类 1 class Dog(): #认识狗这类东西 2 def __init__(self, name, age): #狗是肯定有名字和年龄的,是个狗就有,要用户填写 3 self.name = na

萌新向Python数据分析及数据挖掘 第一章 Python基础 第十节 文件和异常

第一章 Python基础 第十节 文件和异常 从文件中读取数据 读取文件.文件路径   1 filename = 'pi_digits.txt' #文件名取个代号 2 #读取整个文件 3 with open(filename) as file_object: 4 contents = file_object.read()# 给内容取个代号 5 print(contents.rstrip()) 6 #逐行读取 7 with open(filename) as file_object: 8 for

我的Python成长之路---第一天---Python基础(1)---2015年12月26日(雾霾)

2015年12月26日是个特别的日子,我的Python成之路迈出第一步.见到了心目中的Python大神(Alex),也认识到了新的志向相投的伙伴,非常开心. 尽管之前看过一些Python的视频.书,算是有一点基础.但在这里我要保持空杯心态,一切从头开始.好了不多说,Let's Python!!!! 一.Python简介 Python是著名的“龟叔”Guido van Rossum在1989年圣诞节期间,为了打发无聊的圣诞节而编写的一个编程语言.目前Python已经成为实际上除了中国最流行的开发语

第一节 python基础

心灵鸡汤:1,今天的苦逼是为了不这样一直苦逼下去!2,今天之所以苦逼,是因为之前不够努力!3,今天的你,是由几年前的你决定的!4,Be a loser for now,or forever!(一时的屌丝or永远的屌丝)5,不要和傻逼去讲道理,傻逼会把你拉到和他一个水平上,然后用他的经验把你来打败,来说服.####################################### python特性 #################python优点:简单.优雅.明确强大的模块(第三方库)---

第一章 Python基础知识

1.1 介绍  1.1.1 特点 Python是一种面向对象.解释型计算机程序设计语言.语法简洁清晰,强制用空白符作为语句缩进. Python具有丰富和强大的库,又被称为胶水语言.能把其他语言(主要C/C++)写的模块很轻松的结合在一起. 1.1.2 应用领域 Web网站:有很多优秀的开源Web框架,比如Django(最流行).Tornado(轻量级.异步).Flask(微型).Web.py(简单)等. 数据采集:有好用的http库,比如urllib2.requests等.还有高级的屏幕爬取及网