02 2020 档案
摘要:test.py: # -*- coding: UTF-8 -*- """ 测试神经网络模型 大家之后可以加上各种的 name_scope(命名空间) 用 TensorBoard 来可视化 一些术语的概念 # Batch size : 批次(样本)数目。一次迭代(Forword 运算(用于得到损失函数
阅读全文
摘要:train.py: # -*- coding: UTF-8 -*- """ 训练神经网络模型 大家之后可以加上各种的 name_scope(命名空间) 用 TensorBoard 来可视化 一些术语的概念 # Batch size : 批次(样本)数目。一次迭代(Forword 运算(用于得到损失函
阅读全文
摘要:network.py: # -*- coding: UTF-8 -*- """ 神经网络模型相关 RNN-LSTM 循环神经网络 大家之后可以加上各种的 name_scope(命名空间) 用 TensorBoard 来可视化 一些术语的概念 # Batch size : 批次(样本)数目。一次迭代(
阅读全文
摘要:utils.py: # -*- coding: UTF-8 -*- """ 实用方法 """ import os import sys import argparse import datetime import collections import numpy as np import tenso
阅读全文
摘要:深度学习三大模型 CNN卷积神经网络 RNN循环神经网络 DBN深度信念网络 灵感 CNN卷积神经网络:人脑视觉皮层对外界感知 RNN循环神经网络:人脑记忆机制 RNN循环神经网络优势 RNN每个输出与前面的输出建立关联 能够很好地处理序列化数据(音乐、文章等) 能以前面的是序列化对象为基础,来生成
阅读全文
摘要:代码: # -*- coding: UTF-8 -*- import numpy as np import tensorflow as tf # 下载并载入 MNIST 手写数字库(55000 * 28 * 28)55000 张训练图像 from tensorflow.examples.tutori
阅读全文
摘要:一些常见激活函数(维基百科) 代码: # -*- coding: UTF-8 -*- import numpy as np import matplotlib.pyplot as plt import tensorflow as tf # 创建输入数据 x = np.linspace(-7, 7,
阅读全文
摘要:Tensorflow一些常见操作: 代码: # -*- coding: UTF-8 -*- """ 用梯度下降的优化方法来快速解决线性回归问题 """ import numpy as np import matplotlib.pyplot as plt import tensorflow as tf
阅读全文
摘要:这是在用matplotlib绘制动画是出现的错误 分析原因应该是没有安装ffmpeg这个东西,同时也需要imagemagick,这两个是玩绘图必备的 下面就安装一下: 经过踩坑发现安装imagemagick过程中勾选ffmpeg就好,不需要再单独安装ffmpeg了,否则还会出现一些稀奇古怪的问题,而
阅读全文
摘要:代码: # -*- coding: UTF-8 -*- # 引入 Matplotlib 的分模块 pyplot import matplotlib.pyplot as plt # 引入 numpy import numpy as np # 创建数据 x = np.linspace(-2, 2, 10
阅读全文
摘要:使用命令打开tensorboard,我这里是在log文件夹的上一级,注意在哪个文件夹使用命令 tensorboard --logdir=log 运行结果: TensorBoard 1.11.0 at http://DESKTOP-I0SJT3T:6006 (Press CTRL+C to quit)
阅读全文
摘要:基本符号 代码: # -*- coding: UTF-8 -*- # 引入tensorflow import tensorflow as tf # 构造图(Graph)的结构 # 用一个线性方程的例子 y = W * x + b W = tf.Variable(2.0, dtype=tf.float
阅读全文
摘要:代码: # -*- coding: UTF-8 -*- # 引入 TensorFlow import tensorflow as tf # 创建两个常量 Tensor,两个[]才是矩阵 const1 = tf.constant([[2, 2]]) const2 = tf.constant([[4],
阅读全文
摘要:张量的维度(秩) tensor属性 tensor和numpy类似,具有类似的属性,例如: 数据类型dtpye 形状shape 几种tensor constant 值不能改变的一种tensor tf.constant( value, dtype=None, shape=None, name='Cons
阅读全文
摘要:基础结构 数据流图 基础模型 会话(启动图) 程序流程 定义算法的计算图结构 使用会话执行计算
阅读全文
摘要:编程模式 命令式编程(例如torch) 容易理解,命令语句基本没有优化,C、Java、C++、python a = 2 b = 3 c = a * b d = c + 1 print(d) 符号式编程(例如tensorflow) 涉及较多的嵌入和优化,运行速度有同比提升 import tensorf
阅读全文
摘要:卸载原来的tensorflow pip uninstall tensorflow pip uninstall tensorflow-tensorboard 下载编译好的whl文件 在这里下载对应版本的文件https://github.com/fo40225/tensorflow-windows-wh
阅读全文
摘要:拟和 欠拟合Underfitting 样本不够或者算法不精,测试样本特性没学到 拟合完美Fitting right 恰当的拟合数据,泛化能力强 过拟合Overfitting “一丝不苟”的拟合测试数据,泛化能力弱 回归问题中的三种拟合状态 分类问题中的三种拟合状态 解决过拟合方法 降低数据量 正则化
阅读全文
摘要:网络结构 输入层、隐含层(多层)、输出层 单个神经元结构,g(z)为激励函数,线性组合,非线性处理 逻辑回归 正向传播预测结果,反向传播调整w和b 激励函数 作用:提供规模化的非线性化能力 常用: 损失函数 单次训练损失: 全部训练损失: 梯度下降 逻辑回归梯度下降 同步更新 网络向量化 网络梯度下
阅读全文
摘要:机器学习基础认识 机器学习:利用计算机从历史数据中找出规律,并把这些规律用到对未来不确定场景的决策 概率论 数据统计 数据代替expert 离线机器学习 在线学习(电商,搜索) 机器学习典型应用 购物篮分析(啤酒+尿布)-- 关联规则 用户细分精准营销(手机卡分类)-- 聚类 垃圾邮箱 -- 朴素贝
阅读全文
摘要:detect_blinks.py: #导入工具包 from scipy.spatial import distance as dist from collections import OrderedDict import numpy as np import argparse import time
阅读全文
摘要:detect_face_parts.py: #导入工具包 from collections import OrderedDict import numpy as np import argparse import dlib import cv2 #https://ibug.doc.ic.ac.uk/
阅读全文
摘要:multi_object_tracking_slow.py: #导入工具包 from utils import FPS import numpy as np import argparse import dlib import cv2 """ --prototxt mobilenet_ssd/Mob
阅读全文
摘要:直接下载好编译好的.whl文件,网上一大堆...,省去了大量出错的可能性, 注意cp35表示python3.5系列,以此类推,找对版本,否则: 我这里用的anaconda3,在需要安装的env下运行安装命令:
阅读全文
摘要:utils_paths.py: import os image_types = (".jpg", ".jpeg", ".png", ".bmp", ".tif", ".tiff") def list_images(basePath, contains=None): # return the set
阅读全文
摘要:光流估计 光流是空间运动物体在观测成像平面上的像素运动的“瞬时速度”,根据各个像素点的速度矢量特征,可以对图像进行动态分析,例如目标跟踪。 - 亮度恒定:同一点随着时间的变化,其亮度不会发生改变。 - 小运动:随着时间的变化不会引起位置的剧烈变化,只有小运动情况下才能用前后帧之间单位位置变化引起的灰
阅读全文
摘要:背景建模 帧差法 由于场景中的目标在运动,目标的影像在不同图像帧中的位置不同。该类算法对时间上连续的两帧图像进行差分运算,不同帧对应的像素点相减,判断灰度差的绝对值,当绝对值超过一定阈值时,即可判断为运动目标,从而实现目标的检测功能。帧差法非常简单,但是会 引入噪音和空洞问题。 混合高斯模型 在进行
阅读全文
摘要:get_answer.py: #导入工具包 import numpy as np import argparse import imutils import cv2 # 设置参数 ap = argparse.ArgumentParser() ap.add_argument("-i", "--imag
阅读全文
摘要:train.py: import numpy import os from keras import applications from keras.preprocessing.image import ImageDataGenerator from keras import optimizers
阅读全文
摘要:Stitcher.py: import numpy as np import cv2 class Stitcher: #拼接函数 def stitch(self, images, ratio=0.75, reprojThresh=4.0,showMatches=False): #获取输入图片 (im
阅读全文
摘要:特征匹配 Brute-Force蛮力匹配 import cv2 import numpy as np import matplotlib.pyplot as plt %matplotlib inline img1 = cv2.imread('box.png', 0) img2 = cv2.imrea
阅读全文
摘要:图像特征-sift 图像尺度空间 在一定的范围内,无论物体是大还是小,人眼都可以分辨出来,然而计算机要有相同的能力却很难,所以要让机器能够对物体在不同尺度下有一个统一的认知,就需要考虑图像在不同的尺度下都存在的特点。 尺度空间的获取通常使用高斯模糊来实现 不同σ的高斯函数决定了对图像的平滑程度,越大
阅读全文
摘要:图像特征--harris角点检测 基本原理 cv2.cornerHarris() - img: 数据类型为 float32 的入图像 - blockSize: 角点检测中指定区域的大小 - ksize: Sobel求导中使用的窗口大小 - k: 取值参数为 [0,04,0.06] import cv2
阅读全文
摘要:设置参数: ap = argparse.ArgumentParser() ap.add_argument("-i", "--image", required=True, help="path to input image") ap.add_argument("-t", "--template", r
阅读全文
摘要:scan.py: # 导入工具包 import numpy as np import argparse import cv2 # 设置参数 ap = argparse.ArgumentParser() ap.add_argument("-i", "--image", required = True,
阅读全文
摘要:myutils.py: import cv2 def sort_contours(cnts, method="left-to-right"): reverse = False i = 0 if method == "right-to-left" or method == "bottom-to-top
阅读全文
摘要:傅里叶变换 我们生活在时间的世界中,早上7:00起来吃早饭,8:00去挤地铁,9:00开始上班。。。以时间为参照就是时域分析。 但是在频域中一切都是静止的! https://zhuanlan.zhihu.com/p/19763358 傅里叶变换的作用 - 高频:变化剧烈的灰度分量,例如边界 - 低频
阅读全文
摘要:直方图 cv2.calcHist(images,channels,mask,histSize,ranges) - images: 原图像图像格式为 uint8 或 float32。当传入函数时应 用中括号 [] 括来例如[img] - channels: 同样用中括号括起来,它会告诉函数我们统幅图像的
阅读全文
摘要:模板匹配 模板匹配和卷积原理很像,模板在原图像上从原点开始滑动,计算模板与(图像被模板覆盖的地方)的差别程度,这个差别程度的计算方法在opencv里有6种,然后将每次计算的结果放入一个矩阵里,作为结果输出。假如原图形是AxB大小,而模板是axb大小,则输出结果的矩阵是(A-a+1)x(B-b+1)
阅读全文
摘要:图像轮廓 cv2.findContours(img,mode,method) mode:轮廓检索模式- RETR_EXTERNAL :只检索最外面的轮廓;- RETR_LIST:检索所有的轮廓,并将其保存到一条链表当中;- RETR_CCOMP:检索所有的轮廓,并将他们组织为两层:顶层是各部分的外部
阅读全文
摘要:图像金字塔 高斯金字塔 高斯金字塔:向下采样方法(缩小) 高斯金字塔:向上采样方法(放大) img=cv2.imread("AM.png") cv_show(img,'img') print (img.shape) 效果: up=cv2.pyrUp(img) cv_show(up,'up') pri
阅读全文
摘要:Canny边缘检测 使用高斯滤波器,以平滑图像,滤除噪声 计算图像中每个像素点的梯度强度和方向 应用非极大值(Non-Maximum Suppression)抑制,以消除边缘检测带来的杂散响应 应用双阈值(Double-Threshold)检测来确定真实的和潜在的边缘 双阈值检测 通过抑制孤立的弱边
阅读全文
摘要:图像梯度-Sobel算子 img = cv2.imread('pie.png',cv2.IMREAD_GRAYSCALE) cv2.imshow("img",img) cv2.waitKey() cv2.destroyAllWindows() 效果: dst = cv2.Sobel(src, dde
阅读全文
摘要:形态学-腐蚀操作 img = cv2.imread('dige.png') cv2.imshow('img', img) cv2.waitKey(0) cv2.destroyAllWindows() 效果: kernel = np.ones((3,3),np.uint8) erosion = cv2
阅读全文
摘要:图像阈值 ret, dst = cv2.threshold(src, thresh, maxval, type) 两个返回值分别是阈值处理后的像素点矩阵列表、输出图 src: 输入图,只能输入单通道图像,通常来说为灰度图 dst: 输出图 thresh: 阈值 maxval: 当像素值超过了阈值(或
阅读全文
摘要:图像基本操作 环境配置地址 Anaconda:https://www.anaconda.com/download/ Python_whl:https://www.lfd.uci.edu/~gohlke/pythonlibs/#opencv IDE:按照自己的喜好,选择一个能debug就好 安装ope
阅读全文
摘要:__call__ 在Python中,函数其实是一个对象: >>> f = abs >>> f.__name__ 'abs' >>> f(-123) 123 由于 f 可以被调用,所以,f 被称为可调用对象。 所有的函数都是可调用对象。 一个类实例也可以变成一个可调用对象,只需要实现一个特殊方法__c
阅读全文
摘要:__slots__ 由于Python是动态语言,任何实例在运行期都可以动态地添加属性。 如果要限制添加的属性,例如,Student类只允许添加 name、gender和score 这3个属性,就可以利用Python的一个特殊的__slots__来实现。 顾名思义,__slots__是指一个类允许的属
阅读全文
摘要:@property 考察 Student 类: class Student(object): def __init__(self, name, score): self.name = name self.score = score 当我们想要修改一个 Student 的 scroe 属性时,可以这么
阅读全文
摘要:类型转换 Rational类实现了有理数运算,但是,如果要把结果转为 int 或 float 怎么办? 考察整数和浮点数的转换: >>> int(12.34) 12 >>> float(12) 12.0 如果要把 Rational 转为 int,应该使用: r = Rational(12, 5) n
阅读全文
摘要:数学运算 Python 提供的基本数据类型 int、float 可以做整数和浮点的四则运算以及乘方等运算。 但是,四则运算不局限于int和float,还可以是有理数、矩阵等。 要表示有理数,可以用一个Rational类来表示: class Rational(object): def __init__
阅读全文
摘要:__len__ 如果一个类表现得像一个list,要获取有多少个元素,就得用 len() 函数。 要让 len() 函数工作正常,类必须提供一个特殊方法__len__(),它返回元素的个数。 例如,我们写一个 Students 类,把名字传进去: class Students(object): def
阅读全文
摘要:__cmp__ 对 int、str 等内置数据类型排序时,Python的 sorted() 按照默认的比较函数 cmp 排序,但是,如果对一组 Student 类的实例排序时,就必须提供我们自己的特殊方法 __cmp__(): class Student(object): def __init__(
阅读全文
摘要:__str__和__repr__ 如果要把一个类的实例变成 str,就需要实现特殊方法__str__(): class Person(object): def __init__(self, name, gender): self.name = name self.gender = gender de
阅读全文
摘要:特殊方法 python如何把任意数据类型变成str 因为任意数据类型都有一个特殊方法__str__() print(p) == print(p.__str__()) print(list) == print(list.__str__()) 特殊方法还有 特点 定义在class中 不需要直接调用 py
阅读全文
摘要:获取对象信息 拿到一个变量,除了用 isinstance() 判断它是否是某种类型的实例外,还有没有别的方法获取到更多的信息呢? 例如,已有定义: class Person(object): def __init__(self, name, gender): self.name = name sel
阅读全文
摘要:多重继承 除了从一个父类继承外,Python允许从多个父类继承,称为多重继承。 多重继承的继承链就不是一棵树了,它像这样: class A(object): def __init__(self, a): print 'init A...' self.a = a class B(A): def __i
阅读全文
摘要:多态 类具有继承关系,并且子类类型可以向上转型看做父类类型,如果我们从 Person 派生出 Student和Teacher ,并都写了一个 whoAmI() 方法: class Person(object): def __init__(self, name, gender): self.name
阅读全文
摘要:判断类型 函数isinstance()可以判断一个变量的类型,既可以用在Python内置的数据类型如str、list、dict,也可以用在我们自定义的类,它们本质上都是数据类型。 假设有如下的 Person、Student 和 Teacher 的定义及继承关系如下: class Person(obj
阅读全文
摘要:继承基础 继承的优点 新类不用从头编写,复用已有代码 新类从现有的类继承,就自动拥有了现有类的全部功能 新类只需要编写现有类缺少的功能 继承的特点 子类和父类是一个is关系 class person(object): pass class student(person): pass p = pers
阅读全文
摘要:定义类方法 和属性类似,方法也分实例方法和类方法。 在class中定义的全部是实例方法,实例方法第一个参数 self 是实例本身。 要在class中定义类方法,需要这么写: class Person(object): count = 0 @classmethod def how_many(cls):
阅读全文
摘要:方法也是属性 我们在 class 中定义的实例方法其实也是属性,它实际上是一个函数对象: class Person(object): def __init__(self, name, score): self.name = name self.score = score def get_grade(
阅读全文
摘要:定义实例方法 一个实例的私有属性就是以__开头的属性,无法被外部访问,那这些属性定义有什么用? 虽然私有属性无法从外部访问,但是,从类的内部是可以访问的。除了可以定义实例的属性外,还可以定义实例的方法。 实例的方法就是在类中定义的函数,它的第一个参数永远是 self,指向调用该方法的实例本身,其他参
阅读全文
摘要:类属性和实例属性名字冲突怎么办 修改类属性会导致所有实例访问到的类属性全部都受影响,但是,如果在实例变量上修改类属性会发生什么问题呢? class Person(object): address = 'Earth' def __init__(self, name): self.name = name
阅读全文
摘要:创建类属性 类是模板,而实例则是根据类创建的对象。 绑定在一个实例上的属性不会影响其他实例,但是,类本身也是一个对象,如果在类上绑定一个属性,则所有实例都可以访问类的属性,并且,所有实例访问的类属性都是同一个!也就是说,实例属性每个实例各自拥有,互相独立,而类属性有且只有一份。 定义类属性可以直接在
阅读全文
摘要:访问限制 我们可以给一个实例绑定很多属性,如果有些属性不希望被外部访问到怎么办? Python对属性权限的控制是通过属性名来实现的,如果一个属性由双下划线开头(__),该属性就无法被外部访问。看例子: class Person(object): def __init__(self, name): s
阅读全文
摘要:初始化实例属性 虽然我们可以自由地给一个实例绑定各种属性,但是,现实世界中,一种类型的实例应该拥有相同名字的属性。例如,Person类应该在创建的时候就拥有 name、gender 和 birth 属性,怎么办? 在定义 Person 类时,可以为Person类添加一个特殊的__init__()方法
阅读全文
摘要:面向对象编程 什么是面向对象编程 面向对象是一种编程范式 把程序看做不同对象的相互调用 对现实世界建立对象模型 面向对象编程的基本细想 类和实例 类用于定义抽象类型 实例根据类的定义被创建出来 class person: pass xiaoming = person() xiaojun = pers
阅读全文
摘要:模块和包的概念 在文件系统中,包就是文件夹,模块就是xxx.py,包可以有多级,包和普通目录的区别就是包下面必须有个__init__.py,每一层都必须有 py文件名即模块名,模块的上一级为包,不同模块允许同名变量函数等,不同包允许同名模块 在一个模块引用其他模块: import math prin
阅读全文
摘要:这两个都是可变参数,可以传入任意个数的参数 *args是非关键字参数,用于tuple,**kw是关键字参数,用于dict 同时使用*args和**kwargs时,必须*args参数列要在**kwargs前 代码 def foo(*args, **kw): print ('args = ', args
阅读全文
摘要:偏函数 当一个函数有很多参数时,调用者就需要提供多个参数。如果减少参数个数,就可以简化调用者的负担。 比如,int()函数可以把字符串转换为整数,当仅传入字符串时,int()函数默认按十进制转换: >>> int('12345') 12345 但int()函数还提供额外的base参数,默认值为10。
阅读全文
摘要:decorator装饰器 什么是装饰器 问题: 定义了一个函数 想在运行时动态增加功能 又不想改变函数本身的代码 解决: 利用高阶函数,接收一个函数并对其进行包装,然后返回一个函数 代码 def f1(x): #被装饰函数 return x * x def new_fn(f): #装饰器函数 def
阅读全文
摘要:匿名函数 高阶函数可以接收函数做参数,有些时候,我们不需要显式地定义函数,直接传入匿名函数更方便。 在Python中,对匿名函数提供了有限支持。还是以map()函数为例,计算 f(x)=x2 时,除了定义一个f(x)的函数外,还可以直接传入匿名函数: >>> map(lambda x: x * x,
阅读全文
摘要:闭包 在函数内部定义的函数和外部定义的函数是一样的,只是他们无法被外部访问: def g(): print 'g()...' def f(): print 'f()...' return g 将 g 的定义移入函数 f 内部,防止其他代码调用 g: def f(): print 'f()...' d
阅读全文
摘要:返回函数 Python的函数不但可以返回int、str、list、dict等数据类型,还可以返回函数! 例如,定义一个函数 f(),我们让它返回一个函数 g,可以这样写: def f(): print 'call f()...' # 定义函数g: def g(): print 'call g()..
阅读全文
摘要:自定义排序函数 Python内置的 sorted()函数可对list进行排序: >>>sorted([36, 5, 12, 9, 21]) [5, 9, 12, 21, 36] 但 sorted()也是一个高阶函数,它可以接收一个比较函数来实现自定义排序,比较函数的定义是,传入两个待比较的元素 x,
阅读全文
摘要:filter()函数 filter()函数是 Python 内置的另一个有用的高阶函数,filter()函数接收一个函数 f 和一个list,这个函数 f 的作用是对每个元素进行判断,返回 True或 False,filter()根据判断结果自动过滤掉不符合条件的元素,返回由符合条件元素组成的新li
阅读全文
摘要:reduce()函数 reduce()函数也是Python内置的一个高阶函数。reduce()函数接收的参数和 map()类似,一个函数 f,一个list,但行为和 map()不同,reduce()传入的函数 f 必须接收两个参数,reduce()对list的每个元素反复调用函数f,并返回最终结果值
阅读全文
摘要:map()函数 map()是 Python 内置的高阶函数,它接收一个函数 f 和一个 list,并通过把函数 f 依次作用在 list 的每个元素上,得到一个新的 list 并返回。 例如,对于list [1, 2, 3, 4, 5, 6, 7, 8, 9] 如果希望把list的每个元素都作平方,
阅读全文
摘要:什么是函数式编程 函数:function,之前已经谈到 函数式:functional,一种编程范式 函数式编程特点 把计算视为函数而非指令 纯函数式编程:不需要变量,没有副作用,测试简单 支持高阶函数,代码简洁 python支持的函数式编程 不是纯函数式编程:允许有变量 支持高阶函数:函数可作为变量
阅读全文
摘要:生成列表 要生成list [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],我们可以用range(1, 11): >>> range(1, 11) [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 但如果要生成[1x1, 2x2, 3x3, ..., 10x10]怎么做?
阅读全文
摘要:什么是迭代 在Python中,如果给定一个list或tuple,我们可以通过for循环来遍历这个list或tuple,这种遍历我们成为迭代(Iteration)。 在Python中,迭代是通过 for ... in 来完成的,而很多语言比如C或者Java,迭代list是通过下标完成的,比如Java代
阅读全文
摘要:对list或者tuple进行切片 取一个list的部分元素是非常常见的操作。比如,一个list如下: >>> L = ['Adam', 'Lisa', 'Bart', 'Paul'] 取前3个元素,应该怎么做? 笨办法: >>> [L[0], L[1], L[2]] ['Adam', 'Lisa',
阅读全文
摘要:什么是函数 我们知道圆的面积计算公式为: S = πr² 当我们知道半径r的值时,就可以根据公式计算出面积。假设我们需要计算3个不同大小的圆的面积: r1 = 12.34 r2 = 9.08 r3 = 73.1 s1 = 3.14 * r1 * r1 s2 = 3.14 * r2 * r2 s3 =
阅读全文
摘要:什么是set dict的作用是建立一组 key 和一组 value 的映射关系,dict的key是不能重复的。 有的时候,我们只想要 dict 的 key,不关心 key 对应的 value,目的就是保证这个集合的元素不会重复,这时,set就派上用场了。 set 持有一系列元素,这一点和 list
阅读全文
摘要:什么是dict 我们已经知道,list 和 tuple 可以用来表示顺序集合,例如,班里同学的名字: ['Adam', 'Lisa', 'Bart'] 或者考试的成绩列表: [95, 85, 59] 但是,要根据名字找到对应的成绩,用两个 list 表示就不方便。 如果把名字和分数关联起来,组成类似
阅读全文
摘要:if语句 计算机之所以能做很多自动化的任务,因为它可以自己做条件判断。 比如,输入用户年龄,根据年龄打印不同的内容,在Python程序中,可以用if语句实现: age = 20 if age >= 18: print 'your age is', age print 'adult' print 'E
阅读全文
摘要:创建tuple tuple是另一种有序的列表,中文翻译为“ 元组 ”。tuple 和 list 非常类似,但是,tuple一旦创建完毕,就不能修改了。 同样是表示班里同学的名称,用tuple表示如下: >>> t = ('Adam', 'Lisa', 'Bart') 创建tuple和创建list唯一
阅读全文
摘要:创建list Python内置的一种数据类型是列表:list。list是一种有序的集合,可以随时添加和删除其中的元素。 比如,列出班里所有同学的名字,就可以用一个list表示: >>> ['Michael', 'Bob', 'Tracy'] ['Michael', 'Bob', 'Tracy'] l
阅读全文
摘要:数据类型 整数 Python可以处理任意大小的整数,当然包括负整数,在Python程序中,整数的表示方法和数学上的写法一模一样,例如:1,100,-8080,0,等等。计算机由于使用二进制,所以,有时候用十六进制表示整数比较方便,十六进制用0x前缀和0-9,a-f表示,例如:0xff00,0xa5b
阅读全文