【数据挖掘】002 python的数据结构和基本语法

python

  • 定义:python是一门面向对象、直译式编程语言
  • 特点:
    • 编写简单
    • 上手迅速
    • 开源扩展包丰富
  • 优点:
    • 简单易学:python的代码比较简洁,语法比较简单,容易上手
    • 开源:用户可以免费使用
    • 可移植性好:在不同的平台都可以运行,需要注意运行环境的配置
    • 可扩展性:python拥有丰富的第三方库
  • 缺点:
    • python在底层做了很多工作,其运行速度比C,JAVA等要慢很多
    • 由于各种扩展库太过于庞大,导致配置相关包有些困难【不同版本的包不兼容】

数据类型

类型名        说明               描述
str           字符串类型         一段字符串
int           整型              整数,比如1,2,3
float         浮点型            比如0.1, 0.315
bool          逻辑值            ture or false
complex       复数              数学上的概念
bytes         字节型            原始的数据类型,可以理解为01代码
list          列表              有序可修改的列表
tuple         元祖              元祖比较特别,它是一个不可以修改的有序列表
set           集合              无序,唯一的值的集
dict(map)     字典              类似于map
  • python在声明一个变量时可以不声明它的类型,在赋值时确定类型
  • 在声明的容器型变量中,内部的元素类型时任意的
  • 由于列表、集合和字典非常频繁地使用
  • 在数据挖掘过程中,数据通常以向量的方式表示、存储在列表中

列表

可以理解成为一个有序可重复的数组,主要用于按顺序存放数据

list = ['one', 'two', 3, 4, 5]

列表中的元素是有序的,每个元素都有一个位置标记,并且元素可以重复

print(list[0])  # 输出 one
print(list[4])  # 输出 5

列表的基本操作

  • 添加

  • 删除

  • 修改

  • 另外,python提供了一系列的扩展功能,如查询列表长度、列表运算 等等

    list.append(x)  # 向列表中添加一个新的元素x
    del list[2]  # 删除了位于位置2的元素,注意,此时后面的元素会补充进来,所以位置2上仍然有元素
    

修改元素、查询列表长度、列表的运算以及判断某一元素是否在列表中

list[2] = 'three'  # 修改位于位置2的列表元素
len(list)  # 返回列表的长度
list1 + list2  # 列表相加,返回一个新的列表,里面按顺序有 list1 和 list2 的所有元素
list1 * 2  # 列表重复,返回一个新的列表,里面按顺序出现 list1 中的元素两次
x in list  # 判断 list 中是否有 x 这个元素

集合

集合是一个无序的不重复序列,可以使用大括号 {} 或者 set() 函数创建集合
注意:创建一个空集合必须使用 set() 而不能使用 {} ,因为 {} 是用来创建一个空字典的

abc = set()  #  新建一个叫 abc 的集合
abc.add(x)  # 向 abc 中添加一个元素 x
abc.remove(x)  # 从 abc 中删除元素 x 

字典

字典中存放的每一个元素是一个键值对, (key: value), key是不能重复的,存入相同的 key, 它的 value 会被替换成最新的, dict = {} 代表使用大括号声明一个空字典
字典中元素可以是任意类型,比如数值、字符串、列表、甚至是字典

dict = {'a':1, 'b':2, 5: 4}  # 创建一个字典
dict['c'] = 3   # 向字典中添加键值对
  del dict['a']  # 删除字典中的键值对  【只需要标记key就删除了键值对】

编写python代码的注意事项:

  • 标识符:

    • 标识符是定义的名称,包括类名、变量名,等等
    • 标识符的大小写是敏感的,且第一个字符必须是字母表中的字母或者 ‘_’
    • 在 python3 中,中文可以被用作变量名
    • 不能使用 python 自留标识符作为标识符,比如 def, ture, false等
  • 注释:

    • 注释单行, 使用 ‘#’ ,出现在 # 后面的内容全部变成注释,不会被运行
    • 注释一段,使用 ''' 或者 “”“ 来处理多行注释
  • 使用缩进来标记代码块
    很多编程语言中,比如C++, JAVA,使用 {} 来对代码进行分割,在Python中,使用缩进来对代码进行控制
    使用IDE(集成开发环境)编辑代码,有缩进提醒

    • 代码太长,可以使用 ‘\’ 进行连接【括号内的内容不需要使用 \ ,直接换行即可】

      num = num + \
            a + \
            b + \
            c
      
  • 导入其他模块

    • import主要作用时导入整个模块,或者导入模块中的模块

    • from ... import 是从某个模块中导入某个方法(函数)

      import tensorflow as tf  # 导入 tensorflow 模块,并起了一个新名字 tf, 这主要是为了方便代码编写
      from model import yolov3  # 从 model 模块中导入 yolov3 方法
      from math import *   # 从math模块中导入所有的方法
      

python的常用语法

  • 条件语句
  • 循环语句
  • pass语句

条件语句

if condition1:
  statement 1    

elif condition2:
statement 2
else:
statement 3

具体的例子

# 具体的例子,找到a, b, c中最大的数,其中and是逻辑运算符 ‘且’ 的意思:
if a>b and a>c:
  print(a)
elif b>a and b>c:
  print(b)
else:
  print(c)

循环语句:

  • while循环

    # a>b 循环输出a, b加1,直到a<=b 循环终止
    while a>b:
      print(a)
      b = b + 1
    
  • for循环

    # 在区间 [0, 100] 循环输出 i, 即从0开始到100 循环终止
    for i in range(0, 100):
      print(i)
    
  • continue 跳过

    # i 在区间 [0, 100] 循环输出i, 但是如果 i < 50 就跳过本次,下面的 print 语句得不到执行,一只循环到 i >= 50才会执行 print
    for i in range(0, 100):
      if i < 50:
        continue
      print(i) 
    
  • break 终止循环

      #  i 在区间 [0, 100] 循环输出i, 但是如果 i > 50 就遇到break,终止循环,下面的 print 语句总共执行50次
    for i in range(0, 100):
      print(i)
      if i > 50:
        break
    

pass语句

pass语句代表什么都没有,主要用于一些特殊的位置

# 写一个代码,当 i < 50 的时候什么都不做
for i in range(0, 100):
  print(i)
  if i < 50:
    pass
  else:
    print(i)

工具

  • pycharm
  • Spider
  • VIM
  • Sublime
  • Jupyter Notebook
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,793评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,567评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,342评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,825评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,814评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,680评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,033评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,687评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,175评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,668评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,775评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,419评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,020评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,978评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,206评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,092评论 2 351
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,510评论 2 343