分享

python入门教程(六)字符串函数与文本分析

 静幻堂 2018-09-14
极客饕餮 2018-09-13 20:31:15
python入门教程(六)字符串函数与文本分析

ラムジ - PLANET.mp3

04:07.537000000000006

来自极客饕餮

一 字符串函数

python包含许多有用的内置函数和方法来完成常见的任务.

join-以另一个字符串作为分隔符来连接字符串列表.(把一个字符串列表,转换成了多个字符串)

replace-用一个字符串替换原字符串中的一个子字符串.

startswith和endswith-确定是否在字符串的开始和结尾处有一个子字符串.

lower()方法字符串小写. upper()方法字符串大写.

split方法与join相反,把一个字符串转换成列表.

例如:

print(",".join(["spam","eggs","ham"]))

打印"spam,eggs,ham"

print("hello,me".replace("me","world"))

打印"hello,world"

print("this is a sentence".shartswith("this"))

打印"True"

print("this is a sentence".endswith("sentence"))

打印"True"

print("spam,eggs,ham".split(","))

打印"['spam','eggs','ham']"

将字符串变成大写:

a="Spam"

b=a.upper()

二 数字函数

要查找某些数字或列表的最大值或最小值,可以使用maxmin.

要将数字转换成绝对值(该数字与0的距离),使用abs

要将数字四舍五入到一定位的小数,使用round

要计算一个列表数字的总和,使用sum

三 列表函数

all和any将列表作为参数,通常在条件语句中使用.

all列表中所有值均为True时,结果为True,否则结果为False.

any列表中只要有一个为True,结果为True,反之结果为False.

enumerate函数可以用来同时迭代列表的值和索引.

例如:

nums=[55,44,33,22,11]

if all([i>5 for i in nums]):

print("all larger than 5")

if any([i%2==0 for i in nums]):

print("at least on is even")

for v in enumerate(nums):

print(v)

结果:

all larger than 5

at least one is even

(0,55)

(1,44)

(2,33)

(3,22)

(4,11)

四 文本分析器

这是一个示例项目,展示了一个分析示例文件以查找每个字符占用的文本百分比的程序.

本节介绍如何打开和阅读文件.

filename=input("输入一个文件名:")

with open(filename) as f:

text=f.read()

print(text)

结果:

输入一个文件名:test.txt

hello world

这是仅用于演示目的的示例内容.

定义一个函数,用来计算一个字符在字符串出现的次数.

def count_char(text,char):

count=0

for c in text:

if c==char:

count+=1

return count

该函数以文件的文本和一个字符作为参数,返回字符出现在文本中的次数.

使用文件中获取到的字符串和要查询的字符查询:

filename=input("输入一个文件名:")

with open(filename) as f:

text=f.read()

print(count_char(text,"r"))

程序的下一部分将查找每个字母占据文本的百分比.

for char in "abcdefghijklmnopqrstuvwxyz":

perc=100*count_char(text,char)/len(text)

print("{0}-{1}%".format(char,round(perc,2)))

最终的代码如下:

def count_char(text,char)

count=0

for c in text:

if c==char:

count+=1

return count

filename=input("输入一个文件名:")

with open(filename) as f:

text=f.read()

for char in "abcdefghijklmnopqrstuvwxyz"

perc=100*count_char(text,char)/len(text)

print("{0}-{1}%").format(char,round(perc,2))

大家可以复制过去测试一下.

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多