一、IPython基础
1. 标准IPython快捷键:
标准IPython快捷键2. IPython常用魔术命令:
IPython常用魔术命令二、Python语言基础
1. 缩进,而不是大括号
Python使用缩进(tab或者空格)来组织代码,而不是用大括号:
for x in array:
if x < pivot:
less.append(x)
else:
greater.append(x)
一个冒号代表一个缩进代码块的开始,单个代码块必须保持相同的缩进,直到代码块结束。
2. 分号用于在一行内分隔多条语句
a = 5; b = 6; c = 7
3. 注释使用#号
print("Reached this line") # 简单的状态报告
4. 函数和对象方法的调用
调用函数时,向函数括号里传递0或多个参数,把返回值赋值给一个变量
函数传参可以是位置参数,也可以是关键字参数
result = f(x, y, z)
g()
result = f(a, b, c, d=5, e="foo") # 前三个使用了位置参数,后两个使用了关键字参数
对象内部函数,称为方法,可以访问到对象内部的内容
obj.some_method(x, y, z)
5. 变量和参数传递
在Python中对一个变量赋值时,是创建了一个指向等号右边对象的引用, 而不是拷贝
a = [1, 2, 3]
b = a
a.append(4)
b
### 可以发现b 也变成了[1, 2, 3, 4], a, b 两个引用指向同一个对象
6. isinstance函数检查对象是否是特定类型
a = 5
isinstance(a, int) # 检查a 是不是整数类型
a = 5; b = 4.5
isinstance(a, (int,float)) #检查a的类型是否整型或者浮点型
isinstance(b, (int, float))#检查b的类型是否整型或者浮点型
7. 属性和方法
Python中的对象通常会有属性和方法。通过形如obj.attribute_name
的语法进行调用:
a = "foo"
a.<Press Tab>
getattr(a, "split")
8. 导入模块
模块是以.py为后缀名并包含Python代码的文件, 使用as
关键字对导入内容给予不同变量名
# some_module.py
PI = 3.14159
def f(x):
return x + 2
def g(a, b):
return a + b
import some_module as sm
from some_module import PI as pi, g as gf
r1 = sm.f(pi)
r2 = gf(6, pi)
r1
r2
9. 二元运算符和比较运算
二元操作符a = [1, 2, 3]
b = a
c = list(a)
a is b
a is not c # list 函数总是创建一个新的Python列表即一份拷贝,我们可以确定a与c是不同的
a == c # is和== 是不同的,相等不代表是同一个对象
10. 可变对象和不可变对象
可变对象中包含的对象和值可以被修改,例如列表、字典、Numpy数组:
a_list = ["foo", 2, [4, 5]]
a_list[2] = (3, 4)
a_list
Out[34]: ['foo', 2, (3, 4)]
不可变对象不能被修改,如字符串、元组:
a_tuple = (3, 5, (4,5))
a_tuple[1] = "four"
TypeError: 'tuple' object does not support item assignment
可变对象可以修改但不建议修改避免副作用
11. 标量类型
标准Python标量类型- 数值类型int和float
ival = 17239871
ival ** 6
fval = 7.234
fval2 = 6.78e-5
3/2 #整数除法把结果自动转型为浮点数
3 // 2 #3整除2
- 字符串str
a = 'one way of writing a string'
b = "another way"
### 含有换行的多行字符串可以用三个单引号或者三个双引号
c = """
This is a longer string that
spans multiple lines
"""
c
# 字符串是不可变的,无法修改一个字符串:
a = 'this is a string'
a[10] = 'f'#修改字符串会报错
b = a.replace('string', 'longer string') #a替换字符赋值给b
b
- 布尔值True、False
True and True
Out[67]: True
False or True
Out[68]: True
- 类型转换
str, bool, int, float 既是数据类型,也是将其他数据转为这类型的函数
s = '3.14159'
fval = float(s)
type(fval)
Out[3]: float
int(fval)
Out[4]: 3
bool(fval)
Out[5]: True
bool(0)
Out[6]: False
- None
None是null值类型。如果一个函数没有显式地返回值,它会隐式地返回None:
a = None
a is None
Out[8]: True
b = 5
b is not None
Out[10]: True
### None 还可以作为一个常用函数参数默认值:
def add_and_maybe_multiply(a,b,c=None):
result = a + b
if c is not None:
result = result * c
return result
add_and_maybe_multiply(1, 2)
Out[14]: 3
add_and_maybe_multiply(1, 2,5)
Out[15]: 15
None是NoneType类型的唯一实例
type(None)
Out[16]: NoneType
- 日期和时间
Python中内建的datetime模块提供了datetime,date,和time类型
from datetime import datetime, date, time
dt = datetime(2022, 4, 7, 22, 40, 31)
dt.day
Out[31]: 7
dt.minute
Out[32]: 40
dt.date() #date方法获取日期
Out[33]: datetime.date(2022, 4, 7)
dt.time() #time方法获取时间
Out[34]: datetime.time(22, 40, 31)
### strftime 方法将datetime 转换为字符串
dt.strftime('%m/%d/%Y %H:%M')
Out[36]: '04/07/2022 22:40'
### strptime函数将字符串转换为datetime对象
datetime.strptime('20220407', '%Y%m%d')
Out[47]: datetime.datetime(2022, 4, 7, 0, 0)
### 将分钟、秒替换为0:
dt.replace(minute=0, second=0)
Out[49]: datetime.datetime(2022, 4, 7, 22, 0)
### 两个不同的datetime对象会产生
### 一个datetime.timedelta类型的对象:
dt2 = datetime(2022, 11, 15, 22, 30)
delta = dt2 - dt
delta
Out[54]: datetime.timedelta(days=221, seconds=85769)
#表示时间间隔为221天又85769秒
type(delta)
Out[55]: datetime.timedelta
### 将timedelta加到一个datetime上将产生一个新的对象:
dt
Out[56]: datetime.datetime(2022, 4, 7, 22, 40, 31)
dt + delta
Out[57]: datetime.datetime(2022, 11, 15, 22, 30)
Datetime格式化详细说明
网友评论