题目描述:
意思大概就是:将一个正整数里最大的那位数字输出。
题解1:
思路:上面这三种题解都是同一种思路的不同表达方式。(1)先用str()函数,将数字转为字符串,再使用max()函数输出字符串中的最大值并使用int()函数将结果转换回数值类型。(2)使用map()函数让转为字符串的数中每一个元素分别变成int型,max()函数从中返回最大值。(3)这个是使用lambda匿名函数做了(1)的事情。
题解2:str()、int()、max()、map() 这四个都是python的内置函数:
- str() 函数将对象转化为字符串类型,语法为 str(object=' ')
- int() 函数用于将一个字符串或数字转换为整型,语法为 int(x, base=10),参数:x -- 字符串或数字,base -- 进制数,默认十进制。返回值:返回整型数据。
- max() 函数返回给定参数的最大值,参数可以为序列、字符串、列表、元组、字典等,按照ascii码进行排序。
- map() 函数会根据提供的函数对指定序列做映射。语法为map(function, iterable, ...),第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回包含每次function 函数返回值的新列表
python 使用 lambda 来创建匿名函数。
- lambda只是一个表达式,函数体比def简单很多。
- lambda的主体是一个表达式,而不是一个代码块。仅仅能在lambda表达式中封装有限的逻辑进去。
- lambda函数拥有自己的命名空间,且不能访问自有参数列表之外或全局命名空间里的参数。
- 虽然lambda函数看起来只能写一行,却不等同于C或C++的内联函数,后者的目的是调用小函数时不占用栈内存从而增加运行效率。
- lambda函数语法:只包含一个语句:lambda [arg1 [,arg2,.....argn]]:expression
- 例子:(lambda语句中有多少个参数,调用时就要写多少个参数)
思路:使用for循环逆向判断,因为数字里边肯定是只有10个数字9、8、7、6、5、4、3、2、1、0,那么就可以从9开始判断每一位数字是否在转为字符串类型number中,如果在就直接可以输出了,因为它肯定是数字里边最大的一位。
题解3:Python3 range() 函数返回的是一个可迭代对象(类型是对象),而不是列表类型, 所以打印的时候不会打印列表.
语法:range(stop)、range(start, stop[, step])
参数说明:
- start: 计数从 start 开始。默认是从 0 开始。例如range(5)等价于range(0, 5);
- stop: 计数到 stop 结束,但不包括 stop。例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5
- step:步长,默认为1,正值沿正方向,负值沿负方向例如:range(0, 5) 等价于 range(0, 5, 1)
这里 range(10)[::-1] 相当于 [9,8,7,6,5,4,3,2,1,0],首先range(10)生成0-9的数字,[::-1]相当于切片,第一个参数为起始位置,第二个参数为终止位置,第三个参数为步长(负值就沿反方向走),这个[::-1]的第一、二个参数都为默认值就是从0-9,步长-1,意思是从9-0输出。(列表、字符串等都可以使用切片)
思路:将number转为数组,使用numpy中的amax()方法取出最大值
numpy.amax() 用于计算数组中的元素沿指定轴的最大值。
- 语法:numpy.amax(a, axis=None, out=None, keepdims=
, initial= )[source] - 当参数axis不写的时候会将全部数据展平之后返回其中的最大值



