python入门(第五节课----字符串惯用法+正则表达式的使用+简单爬虫+Jupyter Notebook保存文件的方法)

一、字符串惯用法

  1. 进制的转换方法:x=8
    1. bin(x) 将x转换为二进制
    2. oct(x) 将x转换为八进制
    3. hex(x)将x转换为十六进制
  2. 字符串使用切片换换值

题目1:将字符串的首字母替换成z

s="abcdefg"
s2="z"+s[1:]  #s[1:]:从第二个数开始切片,一直字符串结束
print(s2)                   

题目2:将字符串中的a替换成z

s="12345a54321"
si=s.index('a')   #s.index("a")查字符"a"的索引位置
s3=s[:si]+"z"+s[si+1:]#获取前后的切片,将其连接
print(s3)
  1. 字符串中常用函数

    1. 查找型
      1. s.find(“abc”)和s.index(“abc”)
        1. 共同点:都用于查找字符串s中“abc”出现的下标
        2. 不同点:当没有查找到“abc”时,find会返回索引-1,而index会报错
      2. s.rfind(“abc”)和s.rindex(“abc”)
        1. 功能:功能与find,index方法相同,只是要从右边开始查找
    2. 计数型
      1. s.count(“abc”)
        1. 含义:记录“abc”字符串在s中出现的次数
        2. 说明: 没有找到“abc”,不会报错,返回查找次数0
    3. 分割型
      1. split方法
        1. 没有分割符 s.split() 以空格为分隔符分割,转化为列表
          在这里插入图片描述
        2. 有分隔符 s.split(",") 以分割符","进行分割,转化为列表
          在这里插入图片描述
    4. 替代型
      1. s.relpace(a,b)
        1. 功能: 将字符串s中的a用b进行替代
        2. 举例:
          在这里插入图片描述
    5. 连接型
      1. s.join(a)
        1. 说明:a表示全为字符串元素的(元组,集合,列表)中的一个
        2. 功能: 将a中的字符串元素用s字符串连起来
          在这里插入图片描述
  2. 常用的格式输出

    1. 含有变量的输出
      1. print(“我是%s %s”%(s1,s2))
      2. print(“我是“”,s1,” "s2)
    2. 常用的输出格式
      1. %x以八进制形式输出
      2. %e以科学计数法的形式输出
    3. format("")格式
      1. 如下图,前面表示“ ”中的{0:,}和{1:#e}表示格式,后面( )中的数字表示要转换的数值
        前面两种格式正好对应后面两个数
      2. 格式
        1. {0:,}表示第一个数三位数一个逗号的格式输出
        2. {1:#e}表示第二数以科学计数法的形式输出
          在这里插入图片描述
  3. 注意事项
    1. 最好不要用系统内置方法函数名称定义名称,这会导致此函数失效, 以str()强制字符串类型转换为例(list,set等均相同)
    在这里插入图片描述
    2. eval()函数
    1. 功能:此函数可以将字符串强制转换为数值类型,也可以将字符串转换为表达式计算,,
    在这里插入图片描述
    在这里插入图片描述

    1. 缺点:如果导入其它程序代码也能执行,所以不推荐使用

二、正则表达式

  1. 正则表达式的功能:筛选字符串中中满足特定条件的所有字符串,存入列表中
  2. 常见的筛选提条件:
    1. 基础筛选

      1. 数字 :re.find("[0-9]+",x) 筛选x中有1到9的字符串
        在这里插入图片描述
      2. 小写字母:re.find("[a-z]+",x) 筛选x中有a到z的字符串
        在这里插入图片描述
      3. 大写字母:re.find("[A-Z]+",x) 筛选A中有Z到9的字符串
        在这里插入图片描述
        注意:[ ]方括号后面带+,表示筛选子字符串;不带+,表示筛选单个字符
    2. 组合筛选

      1. re.find("[0-9a-z]+",x) 筛选x中有1到9和a到z的字符串
        在这里插入图片描述
      2. re.find("[0-9a-zA-Z]+",x) 筛选x中有0到9、a到z、A到Z的字符串
        在这里插入图片描述
    3. 特殊用法

      1. 否定用法
        1. 形式:在基础筛选用法上,在[ ]里面的最前面加上一个^
        2. 格式:re.find("[^0-9]+",x)
        3. 含义: 筛选x中不含有1到9的字符串
          在这里插入图片描述
      2. 空格用法
        1. 形式:在括号里面加上\s
        2. 格式:re.find("[^0-9\s]+",x)
        3. 含义: 筛选x中不含有1到9和空格的字符串
          在这里插入图片描述
          图中不存含有1到9和空格的数,所以直接返回整个字符串到列表
    4. 查找字符串中的python,bython,dyghon
      在这里插入图片描述

三、简单爬虫

题目1
爬取www.baidu.com,找出出现次数最多和最少的字母

import urllib.request  
r=urllib.request.urlopen("http://www.baidu.com")  #打开网页
s1=str(r.read())   #读取其中的字符并转化为字符串类型
di={}
for i in set(s1):         
    di[s1.count(i)]=i     #记录键为出现的次数,值为字符
klist=list(di.keys())     #对键的集合进行排序
klist.sort(reverse=True)  #倒序排列(大的放在前面)
print(di)
print(klist[0],di[klist[0]])   #打印出现次数最多的键值对
print(klist[len(klist)-1],di[klist[len(klist)-1]])   #打印出现次数最少的键值对

题目2
爬取www.baidu.com,找出出现次数最多和最少的单词

import urllib.request
r=urllib.request.urlopen("http://www.baidu.com")
s1=str(r.read())
import re
s2=re.findall("[a-zA-Z]+",s1)
di1={}
for i in set(s2):
    di1[s2.count(i)]=i
blist=list(di1.keys())
blist.sort(reverse=True)
print(di1)
print(di1[blist[0]],blist[0])
print(di1[blist[len(blist)-1]],blist[len(blist)-1])

四、Jupter Notebook文档保存

  1. 如何将运行的结果写入文件中
    1. 写入文件的方法:
      1. 格式:open(“c:/test2.txt”,“w”).write(dstr) 格式中的 \等价于//
      2. 含义:用w的方式,向路径为c:/test2.txt,写入一个命名为dstr的字符串
    2. 查看默认路径
import os 
os.getcwd()           

相关习题

alist=list(range(1,1001))
blist=list(map(str,alist))    #转换成字符串列表
cstr="+".join(blist)          #利用“+”将他们连起来
dstr=cstr+"="+str(sum(alist)) #直接用加号连接
print(dstr)                      
open("e:/test.txt","w").write(dstr)     #绝对路径保存文本
open("test.txt","w").write(dstr)        #相对路径保存文本,保存到默认路径
open("e:\\test1.txt","w").write(dstr)     
import os   
os.getcwd()
print(os.getcwd())  #会将转义符打印出来,及打印出//                      
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值