极客饕餮 2018-09-13 20:31:15 ラムジ - 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() 二 数字函数要查找某些数字或列表的最大值或最小值,可以使用max和min. 要将数字转换成绝对值(该数字与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)) 大家可以复制过去测试一下. |
|