Esc 和 Enter 在命令和编辑模式之间跳转。
A 键,将在选中单元格上方插入新单元格
B 键,将在选中单元格下方插入一个单元格
按两次D键,可以删除单元格
Z键,撤消已删的但与前各
Y键,将选中的单元格变成代码单元格
F键、弹出’查找和替换’菜单
Shift+Enter : 运行本单元,并选中下个单元
Ctrl+Enter : 运行本单元
Alt+Enter : 运行本单元,在其下插入新单元
pi=3.141592653
print("pi = %.*f" % (3,pi))#用*从后面的元组中读取字段精度即3,结果:pi = 3.142
②- 用做左对齐
pi=3.141592653
print('%-10.3f' % pi) #左对齐 结果:3.142
③+ 在正数前面显示加号( + )
pi=3.141592653
print('%+f' % pi) #显示正负号 结果:+3.141593
④# 在八进制数前面显示零(‘0’),在十六进制前面显示’0x’或者’0X’(取决于用的是’x’还是’X’)
⑤0 显示的数字前面填充’0’而不是默认的空格
pi=3.141592653
print('%010.3f' % pi) #用0填充空白
#000003.142
⑥% ‘%%’输出一个单一的’%’
⑦(var) 映射变量(字典参数)
⑧m.n. m 是显示的最小总宽度,n 是小数点后的位数(如果可用的话)
(3)结合format构造字符串
"{} {}".format("hello", "world") # 不设置指定位置,按默认顺序
'hello world'
"{0} {1}".format("hello", "world") # 设置指定位置
'hello world'
"{1} {0} {1}".format("hello", "world") # 设置指定位置
'world hello world'
注:format必须和字符串配套使用
(4)输入(input)
a = input("input:")
input:123 # 输入整数
type(a)
<class 'str'> # 字符串
list1 = [1, 2, 3, 4, 5, 6, 7 ]
print (list1[1:5])
#结果: [2, 3, 4, 5]
#修改
list1 = [1, 2, 3, 4, 5, 6, 7 ]
list1[0] = 0
#list1 = [0, 2, 3, 4, 5, 6, 7 ]
#删除
list1 = [1, 2, 3, 4, 5, 6, 7 ]
del list1[0]
#list1 = [2, 3, 4, 5, 6, 7 ]
list1 = [1, 2, 3, 4, 5, 6, 7 ]
print(list1[1]) #2
print(list1[-1]) #7
print(list1[1:]) #[2,3,4,5,6,7]
list2 = [1, 2, 3, 4, [5,6,7]]
print(list1[4]) #[5,6,7] 嵌套
Python 的元组与列表类似,不同之处在于元组的元素不能修改。
元组使用小括号,列表使用方括号。
元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可。
元组中只包含一个元素时,需要在元素后面添加逗号,否则括号会被当作运算符使用。
a=(1)#int类型
a=(1,)#tuple类型 可用type验证
dict{k: v}
由键 - 值对(key-value)组成的键(key)可以是任何类型,通常是数字或字符串
字典的值(value)可以是任意Python的对象
字典具有极快的查找速度(hash) ,类似于书本的索引、目录
它的元素是无序的
键值(key)不能重复出现
dict1 = {'Name': 'zhangsan', 'Age': 7, 'Class': 'First' }
print(dict1['Name']) # zhangsan
print(dict1['Age']) # 7
dict1['Age'] = 8 # 更新Age
dict1['Sex'] = "男" # 添加信息
del dict1['Name'] # 删除键 'Name'
dict1.clear() # 清空字典
del dict1 # 删除字典
set和dict类似,也是一组key的集合,但不存储value
由于键(key)不能重复,所以在set中没有重复的key
set可以看成数学意义上的无序和无重复元素的集合
注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。
parame = {value01,value02,...}
set(value)
s.add( x ) #添加元素
s.remove( x )
#将元素 x 从集合 s 中移除,如果元素不存在,则会发生错误。
#此外还有一个方法也是移除集合中的元素,且如果元素不存在,不会发生错误。格式如下所示:
s.discard( x )
s.pop()#也可以设置随机删除集合中的一个元素
空值 None
空值是Python里一个特殊的值,用None、NULL表示
None不是0,0是有意义的,而None是一个特殊的空值
常量
常量就是不能变的变量,通常用全部大写的变量名表示常量
例: PI = 3.14159265359
if 5>4 :
print('yes')
if 表达式:
成立则执行这句
elif 表达式:
成立则执行这句
else:
不成立则执行这句
l = [0, 1, 2, 3, 4]
for i in l: #相当于for i in range(5):
print(i)
for i in range(1, 10):
print(i) #打印1~9
for i in range(1, 10, 2):
print(i) #打印1 3 5 7 9 有换行
sum([i for i in range(1, 11)]) #配合内置函数
li = [[1, 2, 5], [3, 4, 7]]
li_new = [] #希望得到: li_new = [1, 2, 3, 4, 5, 7]
for i in li:
li_new.extend(i)
li_new.sort()
print(li_new)
while 判断条件:
语句 #死循环按CTRL+C来退出
pass是空语句,是为了保持程序结构的完整性。
if student == 'xiaohong':
pass
ProcessOn
https://processon.com/
def hello():
'''say hello''' #存放函数说明
print('Hello')
def information(name,age):
print('名字:',name)
print('年龄:',age)
information(age = 12, name = '张三')#Python 解释器能够用参数名匹配参数值,相当于information('张三',12)
def information(name,age = 18):#定义默认参数,在调用时如果没有传入,则使用默认的参数进行运算
print('名字:',name)
print('年龄:',age)
information(name = '张三')
def calc(*args):#可变参数:传入的参数个数是可变的;加了星号 * 的参数会以元组(tuple)的形式导入
sum = 0
for n in args:
sum = sum + n
return sum
print(calc(1,2,3))#6
print(calc())#0
def info(a, **kw):#加了两个星号 的参数会以字典的形式导入
print(a)#1
print(kw)#{'name': '张三', 'age': 12}
info(1, name = '张三',age = 12)
变量作用域的关键字
global 引用全局
nonlocal 引用上层
爬虫模拟浏览器发送请求到服务器,即发送一个Request,服务器响 应,会得到一个Response,Response的内容便是所要获取的页面内容,类型一般为HTML,然后可以用正则表达式、网页解析库进行解析。最后把数据保存下来。
<html>
<head>
<title>标题title>
head>
<body>
<h>正文标题及层次,一共可以写6层h>
<p>段落内容 p>
<div>文本块,相当于划分出来一块新的块div>
<img src='C:\Users\image3.jpg'>img>
<a href='https://www.icourse163.org'>我是超链接a>
body>
html>
import requests#导入requests
url='https://www.baidu.com/'
r = requests.get(url)#使用get方法请求数据
r.status_code#或r ,获得包含网页信息的响应数据
#返回结果:200 响应成功;30x 重定向;40x 网页找不到;50x 服务器内部错误(x可能为任何数字,一般常见的有304、403、404)
r.status_code # 打印状态码
r.text #以文本形式打印网页源码
r.url # 打印请求url
r.headers # 打印头信息
r.cookies # 打印cookie信息
r.content #以二进制形式打印数据
r.encoding #打印编码方式
r.apparent_encoding# 打印备选编码方式
#常见的编码种类:ASCII 1字节 英文通用;GBK 2字节 中文汉字、兼容ascii;Unicode 2字节 通用编码规则、兼容ascii;UTF-8 1-6字节 可变长编码、汉字(3字节)注意:在Python3中默认采用UTF-8编码格式
#GBK和UTF-8对汉字编码区别:GBK编码时,一个汉字占2个字节,UTF-8编码时,一个汉字占3个字节。在以前很多中文网站都使用GBK编码,可以节省空间,而现在存储成本下降,为了统一编码格式,大多数网站都采用UTF-8编码
s = ' abcddbcaba '
s.strip()#去除首尾的空格、换行
s.strip(' ab')#'cddbc'
s.replace('a','A',2)#' AbcddbcAba '
s.split('d')#[' abc', '', 'bcaba '] 在字符转中有两个’d’,所以切了两刀,中间出现空字符串
s.split('d')[0]#' abc' 用split将字符串分隔,以’d’进行分隔,并只取切分后的第一段内容
#应用:
'苍天大树。'in r.text#true
raw_string=r.text.split('苍天大树。')[1].split('')[0]
5.Xpath的使用(数据解析)
import requests#导入requests
from lxml import etree#导入lxml
url='http://quotes.toscrape.com/'
r = requests.get(url)#使用get方法请求数据
r.status_code#或r ,获得包含网页信息的响应数据
data=etree.HTML(r.text)
#加[0]是为了直接获取中间的内容
word=data.xpath('/html/body/div/div[2]/div[1]/div[1]/span[1]/text()')[0]#利用Xpath来获取想要的网页内容
#结果:word Out[6]: '“The world as we have created it is a process of our thinking. It cannot be changed without changing our thinking.”'
#可以一层一层的去找我们需要获取的内容,->div[1]->div[1]->span[1]->text() 最后使用text()方法将这个标签下的内容提取
#使用了@itemtype来获取了属性标签itemtype里的内容
data.xpath('/html/body/div/div[2]/div[1]/div[1]/@itemtype')[0]
#Out[8]: 'http://schema.org/CreativeWork'
(3)利用// 取所有子元素
data.xpath('//div[@class="quote"]/@itemtype')
#Out[9]: ['http://schema.org/CreativeWork','http://schema.org/CreativeWork', 'http://schema.org/CreativeWork', 'http://schema.org/CreativeWork', 'http://schema.org/CreativeWork', 'http://schema.org/CreativeWork', 'http://schema.org/CreativeWork', 'http://schema.org/CreativeWork', 'http://schema.org/CreativeWork', 'http://schema.org/CreativeWork']
data.xpath('//div[@class="quote"]/@itemtype')[0]#取第一个符合条件的
(4)获取当前网页内容
import requests#导入requests
from lxml import etree#导入lxml
url='http://quotes.toscrape.com/'
r = requests.get(url)#使用get方法请求数据
data=etree.HTML(r.text)
total=data.xpath('/html/body/div[1]/div[2]/div[1]/div')#利用Xpath来获取想要的网页内容
save_list=[]
for info in total:
quote=info.xpath('./span[1]/text()')[0]
author=info.xpath('./span[2]/small/text()')[0]
tags=info.xpath('./div[1]/meta/@content')[0]
print(quote,author,tags)
temp=quote+','+author+','+tags
save_list.append(temp)
(5)保存网页内容
s='学习让我充实!'
f=open('123.txt','w')#用open函数操作文件,第一个参数为文件名(与代码同路径可以直接写文件名,不同写路径如'd:\\123.txt';f = open(r'd:\123.txt','r')如果文件不在当前文件夹下,需要添加路径,那么需要用到转义字符,在这里推荐在路径前加r),第二个参数为操作模式(见下图1)
f.write(s)#操作文件对象(见下图2)
f.close#有时候在写文件的时候会忘记加关闭操作会在内存中制造一些垃圾,在这里推荐直接用with open,程序会自动帮你关闭文件with open('123.txt','w') as f:
#f.write(s)
<movie_rating>
<movie>
<title lang="en">The Shawshank Redemptiontitle>
<director>Frank Darabontdirector>
<year>1994year>
movie>
movie_rating>
参考: [https://www.icourse163.org/learn/kaopei-1207518810#/learn/announce]