练习python题目小记(三)
我们来看一下这道题(其中出现了一些我还没有学到的东西,但是今天不想听课,所以就边做题边学习吧),原本看到这道题是想用FOR循环来尝试一下的,但是感觉既然是python应该会有更加方便的解法,所以去搜了一下AI(搜AI也是状况百出,搜的时候发现python是不会自动忽略掉空格的,他会把空格当成一个普通的字符来记录,所以我们需要通过命令将他除去)
下面来解释一下代码,string1.lower()这个东西我们之前是见过的,它是将全部字母都转化为小写。
我们再来看这一整串:s1 = ''.join(string1.lower().split())
这一整串代码的意思是将字符串string1中的大写字母变成小写,然后以空白字符(如空格、换行、制表符等)为分隔符将他们分割,然后再以空白字符为分隔符将他们拼在一起。
.split():他其实是这么个东西:字符串.split(sep=None, maxsplit=-1),括号中有两个参数,一个是分隔符,一个是分割的次数。前面的字符串是分割的对象。
' '.join():(这个东西看着比较高深,我们先研究一下它的最基本的用法)其实是这个东西:str.join(iterable) 前面用单引号框起来的是分隔符,括号里的是需要拼接的东西。需要拼接的东西必须是可迭代的,并且必须是字符串。分隔符可以是任意长度的字符串。
他还有如换行拼接等好多用法,以后再做研究。(先放一放,没准听的课里会讲)
这是一个判断字符串中所有的字符是否相等的代码,if not语句会在text_string 为空是执行下面的语句。最后的return 那句是一个生成器表达式,可以后面会讲,我们先不做过多的研究。先了解一下all这个东西,他是在括号中的东西全为真时返回true,但凡有一个是假则返回false。
a = math.prod(numbers_list)
prod是python中一个内置的求积的函数,使用时需要提前import math。作用是一次性将可迭代对象中的所有数字相乘。里面有两个阐参数,一个是可迭代对象,另一个是累乘初始值。其中累乘初始值的默认为1,就是在可迭代对象为空时返回的东西。
return sorted(numbers_list)[n - 1]
sorted()是将括号里的内容从小到大进行排序。而[]里面的东西是排序后的数组的索引,通过索引找到第n小的数。