jupyter notebook基础命令与python常用函数


# 多行输出结果
from IPython.core.interactiveshell import InteractiveShell
InteractiveShell.ast_node_interactivity = "all"

1. 关于jupyter cell里的命令,命令都需要写在最前面

1.0 帮助命令: ?以及%magic等

1.1 使用%%, 指定解释器(包括终端命令)

%%cmd,%%bash,%%HTML,%%python2,%%ruby

cmd: 注释: 冒号, 双冒号以及rem 换行: ^(横向数字6的第二功能)
powershell: 注释: #, <# #> 换行: `(横向数字左边的单撇)
Linux bash: 注释: # 换行: \

%%cmd :注释
python --version ::注释
Microsoft Windows [版本 10.0.17134.191]
(c) 2018 Microsoft Corporation。保留所有权利。
G:\Programming\Python\2-advance_tutorial>python --version ::注释
G:\Programming\Python\2-advance_tutorial>
Python 3.6.4 :: Anaconda, Inc.
!python --version ::注释
Python 3.6.4 :: Anaconda, Inc.

1.2 使用%%writefile,会将命令后所有内容写入文件:

%%writefile printName.py
print('test cell writefile2')
a = 2
b = 3
print('sum of a and b: ': a + b)
Writing printName.txt

1.3 使用%pycat,会读取文件内容显示:

%pycat printName.py
`print('test cell writefile2')`
`a = 2`
`b = 3`
`print('sum of a and b: ': a + b)`

1.4 使用%load,载入外部脚本,执行此命令后此命令会被注释:

%load ./printName.py

1.5 使用%%time,cell内代码的单次运行时间信息

%%time
import time
time.sleep(1)
Wall time: 1 s

2. dir

dir([object]): object -- 对象、变量、类型

dir() 函数不带参数时,返回当前范围内的变量、方法和定义的类型列表;
带参数时,返回参数的属性、方法列表。如果参数包含方法__dir__(),该方法将被调用。
如果参数不包含__dir__(),该方法将最大限度地收集参数信息。

因下面代码输出太长故截去。可自己使用来查看

dir()  # 获得当前模块的属性列表
dir([ ])  # 查看列表的方法
dir('s')  # 查看字符串的方法
import time
dir(time)

有时在学习一个新的库时不可避免地要看库包括哪些函数,如果全部输出 dir 信息就很长了,可以使用列表生成式来过滤下。

import tensorflow as tf

# 过滤掉类中__开头的魔法方法
[item for item in dir(tf.keras.optimizers) if not item.startswith('__')]

# 只输出类(一般第一个字母大写, 就用此条件来做评判)
[item for item in dir(tf.keras.optimizers) if item[0].isupper()]
['Adadelta',
 'Adagrad',
 'Adam',
 'Adamax',
 'Nadam',
 'Optimizer',
 'RMSprop',
 'SGD']

3. 异常捕获: try-except-else-finally

try:
    1 / 0
except Exception as e:
    '''异常的父类,可以捕获所有的异常'''
    print('error code: ', e, " 0不能被除")
else:
    '''保护不抛出异常的代码'''
    print("没有异常")
finally:
    print("finally: 最后总是要执行我")
`'异常的父类,可以捕获所有的异常'`
`error code:  division by zero  0`不能被除
`finally`: 最后总是要执行我

4. 字符串格式化函数 -- format()

4.1 位置指定

# 不指定位置,默认顺序
'{} {}'.format('hello', 'world')

# 设置指定位置
'{0} {1}'.format('hello', 'world')
'{1} {0} {1}'.format('hello', 'world')
'hello world'
'hello world'
'world hello world'

4.2 参数指定

# 1. 参数指定
str = 'user_name: {name}, user_birth: {birth}'
str.format(name='Planck', birth=1858)

# 2. 通过字典设置参数
user_info = {'name': 'Planck', 'birth': 1858}
str.format(**user_info)

# 3. 通过列表索引设置参数
user_list = ['Planck', '1858']
'user_name: {0[0]}, user_birth: {0[1]}'.format(user_list)
# []前的0不能省略
'user_name: Planck, user_birth: 1858'
'user_name: Planck, user_birth: 1858'
'user_name: Planck, user_birth: 1858'

4.3 数字的格式化

"{:.2f}".format(3.1415926)  # 保留小数点后两位
"{:+.2f}".format(3.1415926)  # 带正负符号保留小数点后两位
"{:.0f}".format(3.1415926)  # 不保留小数点
"{:0>2d}".format(5)  # 数字补零 (填充左边, 宽度为2)
"{:x<4d}".format(5)  # 数字补零 (填充右边, 宽度为2)
"{:,}".format(10000000)  # 以逗号分隔的数字格式
"{:.2%}".format(0.25)  # 百分比格式
'{:b}'.format(11)
'{:d}'.format(11)
'{:o}'.format(11)
'{:x}'.format(11)
'{:#x}'.format(11)
'{:#X}'.format(11)
'3.14'
'+3.14'
'3'
'05'
'5xxx'
'10,000,000'
'25.00%'
'1011'
'11'
'13'
'b'
'0xb'
'0XB'

4.4 大括号的转义 -- 双大括号

"{} 对应的位置是 {{0}}".format("hhh")
'hhh 对应的位置是 {0}'
评论
发表评论 说点什么