[学习笔记]Python for Data Analysis, 3E-2.Python语言基础,IPython以及Jupyter Notebooks

加深Python知识课参考资料:

  • Python Cookbook, Third Edition, by David Beazley and Brian K. Jones (O’Reilly)
  • Fluent Python by Luciano Ramalho (O’Reilly)
  • Effective Python, Second Edition, by Brett Slatkin (Addison-Wesley)

2.1Python解释器

python是一种解释型语言,通过一次执行一个语句来执行程序。

2.2IPython基础

Tab补全

Introspection(自省)

在变量前或者后使用问号(?)将显示关于对象的一些信息,这被称为对象自省。

?有一个用法,类似于标准Unix或Windows命令行的方式搜索IPython命名空间。与通配符(*)组合在一起的多个字符将显示与通配符表达式匹配的所有名称。例如,我们试图获得Numpy命名空间中包含load的所有函数的列表,可以用

np.*load*?

2.3Python语言基础

Python语句不需要用分号终止。但分号可用在一行上分割多个语句(但通常不鼓励这么做)

动态引用,强类型

Python中的变量没有与之关联的固有类型,变量只需赋值就可以引用不同类型的对象。

变量是特定命名空间中对象的名称;类型信息存储在对象本身中。Python是一种强类型语言,形如

‘5’ + 5 # 不会进行隐式转换得到10或者'55'

但在某些允许情况下也会发生隐式转换,如

a = 4.5 # <class 'float'>
b = 2   # <class 'int'>
a / b   # 隐式转换,得到2.25

属性和方法

Python中的对象通常同时具有属性(存储在对象‘内部’的其他Python对象)和方法(与可以访问内部数据的对象关联的函数),他们都可以通过语法<obj.attribute_name>访问;也可以通过’getattr(obj, ‘attribute_name’)'函数访问

鸭子打字

通常,我们可能不关心对象的类型,而只关系它是否具有某些方法或行为。例如,你可以通过对象是否实现了迭代器来证实一个对象是否可迭代。对许多对象而言,这意味着它有‘iter’魔术方法。而更好的检查方法是尝试使用’iter’函数:

def isiterable(obj):
    try:
        iter(obj)
        return True
    except TypeError: # not iterable
        return False

二元运算符以及比较

可以通过is和not is来检查两个变量是否引用同一个对象。

is和is not的一个常见用法是检查一个变量是否引用None,因为有且只有一个None对象。

可变和不可变对象

Python中的许多对象(如列表、字典、Numpy数组和大多数用户定义的类型(类))都是可变的,这意味着可以修改它们包含的一个或多个对象。

其他的,如字符串和元组,是不可变的,这意味着它们的内部数据无法修改。

标量类型

Python中有一小组内置类型,用于处理数值数据,字符串,布尔值,日期和时间。这些“单值”类型有时称为标量类型。日期和时间由标准库datetime提供,单独讨论。

字符串

对于带换行符的多行字符串,可以使用三重引号来编写字符串。

Python中的字符串是不可变对象,因此要修改字符串,需要使用创建新字符串的函数或方法,如‘replace’方法。

字符串是Unicode的序列,因此可以像其他序列(如列表和元组)一样处理。并且适用“切片”语法。

反斜杠字符是转义字符,用于指定换行符或Unicode字符等特殊字符。可以在字符串前加上引导符r,此时字符串将按照原样解释。

字符串模版化或格式化是一个重要主题。String对象有一个format方法,它可用于将格式化的参数替换为字符串,从而生成一个新的字符串,如:

template = '{0:.2f} {1:s} are worth US${2:d}'
# {0:.2f}表示第一个参数的格式设置为具有两个小数点的浮点数
# {1:s}表示第二个参数的格式设置为字符串
# {2:d}表示第三个参数的格式设置为精确整数
template.format(88.46, 'Argentne Pesos', 1)

Python3.6引入了一个名为f-strings(格式化字符串文本的缩写)的新功能,它使得创建格式化字符串更加方便。若要创建一个f-string,在字符串文本前面添加字符’f’,并将Python表达式括在大括号中,以将表达式的值替换成格式化的字符串。

amount = 10
rate = 88.46
currency = 'Pesos'
result = f'{amount} {currency} is worth US${amount / rate:.2f}'

字节和统一码(Unicode)

在现代Python(如Python3.0及更高版本)中,Unicode已经成为第一类字符串类型,它可以更一致地处理ASCII和非ASCII文本。在旧版本Python中,字符串都是字节,没有任何明确的Unicode编码。假如你知道字符编码,则可以转化为Unicode。下面是一个包含非ASCII字符的Unicode字符串示例:

val = "español"

可以通过’encode’方法将这个Unicode字符串转化为它的UTF-8字节表示形式

val_utf8 = val.encode('utf-8')
type(val_uft8) # 返回bytes,说明这是字节

假设你知道一个字节对象的Unicode编码,你也可以通过’decode’方法将它还原:

val_uft8.decode('utf-8')
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值