python编程基础 二

第四模块 字符串、字典

(本文的大部分干货、笔记以及注意事项都在代码中注释)
4.1字符串 索引 切片
字符串相当于定义一段字符序列。字符串中的元素不可变。
代码如下:

#字符串
string1 = 'wz'
string2 = "wz"#单引号和双引号均不可以实现多行字符串定义
print (string2)#wz
string3 = '''w
z'''  #三引号可以实现多行字符串的定义
print(string3)#打印出w//z
#多行注释 选中后按CTRL+?键
#统一缩进 选中后按tab键
#反缩进 选中

对字符串的切片

str = 'Xiandichuangyeweiban Er Zhongdaobengcu,Jin Tianxiasanfen,Yizhoupibi'
str.split()
re1=str.split()
re2=str.split(sep=',')
print(str)#对字符串切片,不会影响原字符串 输出Xiandichuangyeweiban Er Zhongdaobengcu,Jin Tianxiasanfen,yizhoupibi
print(re1)#split括号为空,默认以空格为界切片 输出['Xiandichuangyeweiban', 'Er', 'Zhongdaobengcu,Jin', 'Tianxiasanfen,Yizhoupibi']
print(re2)#对split更改,以“,”为界 输出['Xiandichuangyeweiban Er Zhongdaobengcu', 'Jin Tianxiasanfen', 'Yizhoupibi']
str.lower()#可以使字符串的大写变小写,小写不动
print(str.lower())#xiandichuangyeweiban er zhongdaobengcu,jin tianxiasanfen,yizhoupibi
#注:字符串中的值不可变,但列表内的值可变

4.2 对字符串的操作
python中虽不可以对字符串直接进行更改,但是可以对他进行合并、重复、转换等操作,以达到增减元素、改变数据类型等目的

#字符串与列表类似,每一个字符都相当于列表中的一个元素,排序和位置也与列表相似
#合并(拼接)
string ='daisk'
print(string[:3])#与列表相似,左闭右开,dai
print(string +" "+string1)#daisk wz
#重复
print(string*2)#daiskdaisk
#转换
print(int('1234'))#1234 string转int
后shift+tab

(字符串操作的基本方法如下图)
在这里插入图片描述
在这里插入图片描述
4.3 字典的创建和索引 以及 4.4 字典的部分基本操作
字典是一种可变容器模型,且可存储任意类型对象。
字典一般由键值对组成(key=>value),用冒号:分割,每个键值对之间用逗号,分割,整个字典包括在花括号{}中。
具体注意事项和代码示例如下:
在这里插入图片描述

#字典
dic={0.2:[123,'241c','s'],'l':'wz','a':123,'b':124}#键不可以重复,值可以重复.键重复后,取最后定义的键对应值
#不可以使用能够修改的值作为键(如 列表),否则报错)
print(dic)#{0.2: [123, '241c', 's'], 'l': 'wz', 'a': 123, 'b': 124}
re=dic['a']
print(re)#与列表不同,访问键,无先后顺序,直接通过键访问对应的值

dic['a']=2147 #更改键值对:重新赋值
dic['int']=2147483637 #增加键值对:直接加入最后
dic.update({4:234,5:2345}) #新增多个键值对
del(dic["a"]) #删除某个键值对,也可删除整个字典

print(dic)

在这里插入图片描述
4.5 字典推导式
除了上述操作之外,还有字典推导式(用于简化代码)
代码如下:

#字典推导式
a = {i:i**2 for i in range(10) if i%2==0}
b = {i:pow(i,3) for i in range(5)}
print(a)
print(b)

第五模块 读取文件

5.1 用python读取文件
python可以打开文件,常用的打开文件方法有读(write)、写(read)等。
示例如下:

f = open('Walden.txt',"r")  #所打开的文件必须要在同一个文件夹里,否则会报错:FileNotFoundError: [Errno 2] No such file or directory: 'Walden.txt'
txt=f.read(5) #read的方式 括号内可以选取字符数,括号不填则视为全部
txt_lines=f.readlines()
f.close()

print(txt)
print(txt_lines)

这样既可以将Walden.txt打开
在这里插入图片描述
在这里插入图片描述

5.2 练习:统计小说词频

#练习三 统计小说中的单词频次
import re
f = open('Walden.txt','r')
txt=f.read()  #读取
f.close()     #需要关闭,不关闭的话会占内存
txt.lower()   #小写
txt=re.sub('[?,.!;\'":-]',' ',txt)     #re中的sub方法,用于去掉标点符号
words=txt.split()     #分割单词
word_sq={}            #定义空字典 以便存放数据
for i in words:
    if i not in word_sq:
        word_sq[i] = 1
    else:
        word_sq[i] += 1   #遍历 循环计数
res=sorted(word_sq.items(),key=lambda x:x[1],reverse=True)   #排序
print(res)

第六模块 函数

python中提供了大量函数以供大伙快捷地完成任务(和作业),但除此之外,我们也可以自行定义函数来使程序完成特定的任务。

#自定义函数
#法一
def Sum(x,y):
    return x+y

#法二
y = lambda x:x**3   # lambda 快速定义函数
y1 = lambda x:x[3]  # 定义参数为列表的第3个元素
#lambda 参数列表:执行语句
 其实,它对应的标准自定义函数形式:
 def  函数名称(参数列表):
 return 语句内容

re = y(5)
res = Sum(1,2)
re = y1(['wz','ayxtl','daisk',202])

print(re)
print(res)

在这里插入图片描述

6.2 练习:求序列中偶数的个数

#练习4 序列中偶数的个数
def oushu (x):
    sum =0  #必须定义在函数内,否则报错
    for i in x:
        if i % 2 == 0:
            sum += 1
    return sum #必须有返回值
res = oushu([i for i in range(10)])
print (res)

第七模块 面向对象与模块

7.1 方法与函数的比较
具体如下:

#方法与函数

all_in_list = ['wz',202,324,'324']
all_in_list.append('6') #append是一种方法 需要直接加在其对象后
string = 'a yi xi tie lu'
# string.append('wz') 报错: 'str' object has no attribute 'append' 。str没有append方法

string.split()
# all_in_list.split()报错:'list' object has no attribute 'split'。list没有split方法

print (all_in_list)
print(string)

#对于方法,需要加载具体的对象后面 如list.append()
#对于函数,不需要加在对象后面 如int()
#每个对象都有自己的方法、属性

7.2 面向对象实例

#面向对象
class Human: #定义类
    def __init__(self,sex1,age1):
        self.sex=sex1 #定义参数sex的值为sex1
        self.age=age1 #定义参数age的值为age1

    def square(self,x):
        return x**2   #定义方法

wz = Human(sex1='nv',age1=18) #给sex1,age1赋值
res = wz.square(10)
res = wz.age
res = wz.sex
print(res)

7.3 模块 和 7.4 自定义模块的调用

#模块的调用
import math #调用math
from math import sin,pi #从math中调用sin,pi
import def_Sum
from def_Sum import s   #从def_Sum中调用函数s
#手打的模块要和代码在同一个工程(文件夹)里

res = s(1,2)

print(pi) #3.141592653589793
print(math.sin(1)) #0.8414709848078965
print(res)#3



import numpy #调用numpy
import numpy as np #调用numpy并命名为np
from numpy import array #调用array方法
from numpy import * #调用全部,但是会和python包内函数混淆,所以不建议使用
#模块的编写
def s(x,y):
    return x+y

第八模块 注意事项

工作路径
#工作路径
#脚本名不要与已有的模块名重名,会报错
#访问路径
f = open('C:/Users/huawei/Desktop/python/Walden.txt','r')  #需要将反斜线改为斜线

#获取当前工作路径
import os
path = os.getcwd()

print (path)  #C:\Users\huawei\Desktop\python (工程所在文件夹)
 

更多强大的类库)
在这里插入图片描述

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值