用Python玩转数据——Week1

第一个Python程序

  • 运行方式
    • Shell方式
    • 文件方式

      模块是对象,并且所有的模块都有一个内置属性 name。一个模块的 name 的值取决于您如何应用模块。如果 import 一个模块,那么模块name 的值通常为模块文件名,不带路径或者文件扩展名。但是您也可以像一个标准的程序样直接运行模块,在这 种情况下, name 的值将是一个特别缺省”main“。

  • IO
    • 输入
      var = input();
      Python 3.x中raw_input() 和input()整合成了input(), 返回类型为str
    • 输出
      print语句
  • 代码风格

    • 注释 # comment
    • 续行

      • 续行符
      • 括号内的内容
      • 三引号
        >>>print('''hello 
        world''')
        hello
        world
        
        >>> x = '''hello
        ... work'''
        >>> x == 'hello work'
        False
        
        >>> y = 'hello work'
        >>> z = 'hello \
        ... work'
        >>> y == z
        True
    • 缩进——语句块

基础语法

  • 变量: 标识对象,引用对象
  • 标识符: 合法的变量名称
  • 关键字
Python中的对象包含三要素:id、type、value
其中id用来唯一标识一个对象,type标识对象的类型,value是对象的值

is判断的是a对象是否就是b对象,是通过id来判断的
==判断的是a对象的值是否和b对象的值相等,是通过value来判断的

>>> a=100
>>> b=100.0
>>> a is b
False
>>> a==b
True
>>> id(a)
30696848L
>>> id(b)
48685000L
>>> id(a)==id(b)
False
  • 运算符
    • 算术运算符
    • 位运算符
    • 比较运算符
    • 逻辑运算符
  • 表达式:用运算符连接各种类型数据的式子
  • 赋值:给变量类型和“值”

    • 增量赋值
      m %= 5
      没有 m++ 这样的语句
    • 多重赋值
      PI = pi = 3.14159
    • 多元赋值

      x, y = y, x
      等式俩边是元祖

      多重赋值PI, r = 3.14159, 3的本质由两个步骤构成:
      temp = 3.14159, 3 # 元组打包(Tuple packing)
      PI, r = temp # 序列解包(Sequence unpacking),多重赋值有时也称为序列解包“

  • 语句:完整执行一个任务的一行逻辑代码
    • 语句包含表达式

数据类型

必须有明确的数据类型,程序才能分配给常量、变量精确 的存储大小,才能进行精确或高效率的运算


  • Python标准数据类型
    • (长)整型

Python 3.x中没 有long类型, 整数都是int型
存储大小跟内存有关,不会发生溢出问题
>>> x = 100000000000000000000000000000
>>> x **=2
>>> x
10000000000000000000000000000000000000000000000000000000000
>>> x **=2
>>> x
100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
  • 浮点型

    没有double

  • 复数型
  • 布尔型
  • 序列类型
    • 字符串: 不可变
    • 列表:可变
    • 元组:不可变
  • 映射类型
    • 字典

基本运算

  • 算术运算符

    乘方 * 正负号+ -
    乘除 * / 整除//
    取余% 加减+ -

  • 比较运算
    3 < 4 < 7 # same as ( 3 < 4 ) and ( 4 < 7 )
    True
    4 > 3 == 3 # same as ( 4 > 3 ) and ( 3 == 3 )
    True
    4 < 3 < 5 != 2 < 7
    False
  • 逻辑运算
  • 字符运算符
    • 原始字符串操作符 (r / R)
    • Unicode 字符串操作符( u / U )

函数、模块和包

函数

  • 内建函数
绝对值函数abs(x)
类型函数type(x)
四舍五入函数round(x)

>>> round(3.4)
3
>>> round(4.6)
5
>>> round(3.5)
4
>>> round(2.5)
2

四舍六入五成双
  • 非内建函数: 非内建函数的使用需要靠模块引入

模块

一个完整的Python文件即是一个模块
- 文件:物理上的组织方式 math.py
- 模块:逻辑上的组织方式 math

  • 一个有层次的文件目录结构
  • 定义了一个由模块和子包组成 的 Python 应用程序执行环境

  • 库是一组具有相关功 能的模块的集合

RANGE和 XRANGE

  • range():Python3返回的是一个range对象,需要用list(range())方式进行调用
    range (start, end, step=1)
    range (start, end)
    range (end)
  • xrange
    Python3 不支持xrange()

循环

  • while
while expression: 
    suite_to_repeat

• 条件表达式
• 当 expression 值 为 True
时执行suite_to_repeat代码块
  • for
for iter_var in iterable_object: 
    suite_to_repeat
  • 可以明确循环的次数

    • 遍历一个数据集内的成员
    • 在列表解析中使用
    • 生成器表达式中使用
  • iterable_object

    • String
    • List
    • Tuple
    • Dictionary
    • File
    • 循环中的else语句
    • 如果循环代码从break处终止,跳出循环
    • 正常结束循环,则执行else中代码

函数

内建函数

自定义函数

def addMe2Me(x):
    'apply operation + to argument' #DocString,用来说明文本
    return (x+x)

print(fn._doc):查看函数文档

参数

  • 默认参数
    默认参数一般需要放置在参数列表的最后
  • 关键字参数
    关键字参数是让调用 者通过使用参数名区 分参数。允许改变参 数列表中的参数顺序
  • 传递函数
    函数可以像参数一样传递给另外一个函数
  • lamda函数
lambda     x, y  :  x + y

my_add = lambda x, y :  x + y
>>> my_add(3, 5)
8

变量作用域

  • 全局变量
  • 局部变量
# Filename: scopeofvar.py
def f(x): 
    print a
    a =5 
    print a + x

a= 3 
f(8)

UnboundLocalError: local variable 'a' referenced before assignment
# 在这里 a 为全局变量
  • global语句
global语句强调全局变量

# Filename: scopeofvar.py
def f(x): 
    global a
    print a 
    a= 5 
    print a + x

a= 3 
f(8) 
print a


Output: 3
13
5

猜你喜欢

转载自blog.csdn.net/niukai1768/article/details/79544950