Python刷题之内置函数《下》

192 阅读5分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第21天


  • NP86 字符子串的查找

描述

牛客网公布中奖信息了,中奖信息是一个很长的字符串,牛牛想知道自己的名字('NiuNiu')有没有出现在其中,你能帮助他使用字符串的find函数查找一下吗?

输入描述:

输入一个长字符串long_str表示中奖信息。

输出描述:

输出'NiuNiu'在long_str中第一次出现的位置,没有则输出-1.

示例1

image.png

参考代码: 考察find函数的用法

long_str = input()
print(long_str.find('NiuNiu',0))
  • 语法

find()方法语法:

1str.find(str, beg=``0``, end=len(string))
  • 参数

  • str -- 指定检索的字符串

  • beg -- 开始索引,默认为0。

  • end -- 结束索引,默认为字符串的长度。

  • 返回值
    如果包含子字符串返回开始的索引值,否则返回-1。


值得学习的代码: image.png

  • NP87 子串的数量

描述

牛客网喜欢'Niu'这个词,各个地方的称号、标语都会出现。现在给你一定长字符串patten,你能使用count函数找到'Niu'在其中出现的次数吗?

输入描述:

输入一行字符串patten。

输出描述:

输出'Niu'在patten中出现的次数,为非负数。

示例1

image.png

patten = input()
try:
    print(patten.count('Niu'))
except ValueError:
    print("NO 'Niu'in patten!")

这题简易代码如下:

patten = input()
print(patten.count('Niu'))
  • NP88 句子拆分

描述

英文句子都是由单词之间通过空格间隔而组成,牛牛想知道一句英语句子里面包含有哪些单词,你能使用split函数将它们全部按照空格分割,记录进列表中吗,请输出列表。

输入描述:

输入一行字符串,仅包含空格和大小写字母。

输出描述:

输出分割后的单词列表,不必去重。

示例1

image.png

参考代码如下:

list_1  = list(input().split())
print(list_1)
  • NP89 单词造句

描述

牛牛在和牛妹做一个游戏,牛牛给定了牛妹一些单词字符串,他想让牛妹把这些单词拼接成以空格间隔开的句子,很可惜牛妹Python没有学好,你能使用join函数帮帮她吗?

输入描述:

多行输入多个字符串,每行一个单词,最后一个输入为0时结束。

输出描述:

输出多个单词组成的句子。

image.png

参考代码:

list_1 = []
while 1:
    str = input()
    if str != '0':
        list_1.append(str)
    else:
        break
print(" ".join(list_1))

join函数的用法:
1、join()函数
语法:  'sep'.join(seq)
参数说明
sep:分隔符。可以为空
seq:要连接的元素序列、字符串、元组、字典
上面的语法即:以sep作为分隔符,将seq所有的元素合并成一个新的字符串
返回值:返回一个以分隔符sep连接各个元素后生成的字符串
2、os.path.join()函数
语法:  os.path.join(path1[,path2[,......]]) 返回值:将多个路径组合后返回
注:第一个绝对路径之前的参数将被忽略

意味着要先将输入的值放在一个列表中或容器中,然后利用join函数进行连接


  • NP90 修正错误的字母

描述

牛客网在录入用户名字信息发生了错误,所有的字符子串'ab'都被录成'a*',运营同学急坏了。你能使用Python字符串的replace函数,将名字信息中的'a*'全部修改回'ab'吗?

输入描述:

输入一个字符串表示录入的用户名字,其中必定包括子串'a*'。

输出描述:

输出全部替换后的字符串。

示例1

image.png

str_1 = input()
print(str_1.replace('a*','ab'))

注意:replace(old:str,new:str);注意replace的用法,里面输入的是字符串

  • NP91 小数位修正

描述

牛客网的财务同学很苦恼,各个部门提交的资料中关于金额的小数保留简直是乱七八糟,你能使用round函数,帮助财务同学将输入数字的小数位修正为四舍五入保留至最多两位小数吗?(请不要使用字符串格式化输出保留小数位)

输入描述:

输入一个正小数。

输出描述:

输出该小数的四舍五入保留至最多两位小数后的结果。

示例1

image.png

参考代码如下:

num = float(input())
print(round(num,2))

round()函数四舍五入,还有最多保留两位有效小数

  • NP92 公式计算器

描述

牛牛听说Python中有一个很神奇的函数eval(),只要输入的字符串是一个公式,它能够直接计算这个公式的值。

现牛牛以字符串地形式输入一个公式,请你使用eval()计算结果。

输入描述:

以字符串的形式输入公式,包括加减乘幂四种运算,数字都是整数,有正有负有零。

输出描述:

直接输出计算结果。 ··

image.png

str_1 = input()
print(eval(str_1))

知识点:需要掌握eval()函数的用法

  • NP93 创建集合

描述

某公司内部报名年会活动,因为是匿名报名,有的同事可能偷偷“帮助”别人报名了,导致一个名字出现多次。后台营运同学希望你能用set函数将这些名字记录为一个集合,以到达去重的目的,请输出这些名字创建的集合,输出的时候使用sorted函数对集合排序。

输入描述:

一行输入多个字符串表示报名的名字,以空格间隔。

输出描述:

输出这些报名名字组成的集合。

示例1

image.png

参考代码如下:

str_1 = input().split()
set_1 = []
for i in str_1:
    set_1.append(i)
print(sorted(set(set_1)))

简易代码如下:

list_1=input().split()  # 等式右边这是一个list格式
print(sorted(set(list_1))) # 这里只需要利用set()将列表里的重复项去掉,然后利用sorted()函数升序排列即可