函数习题讲解1| 学习笔记

简介: 快速学习函数习题讲解1

开发者学堂课程Python入门 2020年版函数习题讲解1】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/639/detail/10372


函数习题讲解1


内容介绍:

一、1-7题讲解过程

二、8-12题讲解过程

三、13-15题讲解过程


一、1-7题讲解过程

第一个题目较为简单,就不详细说明。

1)第二题编写一个函数,求多个数得最大值

代码内容为:

def get_max(*args):

for arg in args:

if arg > x

x = arg

rerurn x

print(get_max(1,9,6,3,4,5))

运行后结果为:

image.png

2)编写一个函数,实现摇骰子的功能,打印N个骰子的点数和

加入代码n个骰子之和的代码,def get_sum(n):,并且骰子摇的数由于是随机数,需要加入x = random.randint(1,6),在使用一个累加,最后返回m的值即可。

代码内容为:

from random import random

def get_max(*args):

x = args[0]

for arg in args:

if arg > x

x = arg

return m

print(get_max(1,9,6,3,4,5))

print(get_sum(5))

到目前为止,运行后会报错,这是因为在前面的导包出现问题,用语句 import random 导入 random.py 文件;而原来的语句是导入 random 模块中的 random 类,导入错误。

将导包语句修改为 import random 语句后,运行结果为:

第一运行如下图:

image.png

第二次结果如图:

image.png(3)编写一个函数,提取指定字符串中所有的字母,然后拼接在一起产生一个新的字符串。

加入代码:

def get _alphas(word):

new_str = ‘ ’

for w in word :

if w.isalpha():

new_str += w

return new_str

并输出结果print(get_alpha(hello123))

整体代码内容为:

def get_max(*args):

x = args[0]

for arg in args:

if arg > x

x = arg

rerurn x

def get_num(n)

m=0

print(get_max(1,9,6,3,4,5))

print(get_sum(5))

print(get_alpha(hello123good456))

运行结果为:

image.png

(3)写一个函数,默认求10的阶乘,也可以求其他数字的阶乘,这其实就是一个缺省参数的一个使用。

加入以下代码,在写 range 内容是注意要写成1n+1,不要写成0

def get_factorical(n=10):

x = 1

for i in range(1,n+1):

x *= i

return x

print (get_factorical(4))

整体代码内容为:

def get_max(*args):

x = args[0]

for arg in args:

if arg > x

x = arg

rerurn x

运行结果为:

如果不在打印语句中加入参数,就会打印出10的阶乘的内容,数值较大,如下图。

image.png5)写一个函数,求多个数的平均值

加入以下语句:

def get_avergae(*args):

x = 0

for arg in args :

return x / len(args)

print (get_average(1,2,3,4,5,))

整体代码内容为:

def get_max(*args):

x = args[0]

for arg in args:

if arg > x

x = arg

rerurn x 

运行结果为:

image.png

二、8-12题讲解过程

(1)写一个自己的 captalize 函数,能够将指定字符串的首字母变成大写字母。

加入语句,把小写字母改为大写字母后,还要和原来的字符串拼接

def my_captalize(word):

c = word[0]

if z>= c >= a:

new_str = word[1:]

return c.upper() + new_str

return word

print(my_capitalize(‘hello))

运行结果为:

由于一开始就去到的是小写字母h,是在az之间,满足这个条件就会有一个新的字符串是由原来字符串除去首字母的字符串,最后再用大写语句,将大写后的字母和新的字符串连接在一起。

如果再加入print(my_capitalize(34hello))语句,结果会变为:还是34hello的形式,因为再取第零个位置的数据时,它不满足于if的语句内容,它就会直接打印出原字符串。

image.png

2)写一个自己的endswith函数,判断一个字符串是否以指定的字符串结束

加入语句,在这以hello为例,取‘llo‘后,是要先判断长度为三,然后从后三个开始算起。

def my_endswith(old_str,str1):

old_str[-len(str1):] == str1

print(my_endswith(hello,llo))

整体代码内容为:

def get_max(*args):

x = args[0]

for arg in args:

def get_factorical(n=10):

x = 1

for i in range(1,n+1):if  z>= c >= a:

new_str = word[1:]

return c.upper() + new_str

return word

print(my_endswith(hello,llo))

运行结果为:

image.png

如果把print语句改为print(my_endswith(hello,lxo))

3)写一个自己的 isdigit 函数,判断一个字符串是否是纯数字字符串。

加入代码:

def my_digit(old_str):

Pass

只要说明字符串中的内容有一个非数字内容就代表是False,就要把pass语句换成:

for s in old_str:

if not 0 <= s <= 9’:

return False

return True

print (my_digit(‘123hd90))

整体代码内容为:

def get_max(*args):

x = args[0]x = arg

new_str = word[1:]

return c.upper() + new_str

return word

def my_endswith(old_str,str1):

old_str[-len(str1):] == str1

def my_digit(old_str):

for s in old_str:

if not 0 <= s <= 9’:

运行结果为:

再把print语句改为print (my_digit(12390))纯数字语句,就会变为True

(3)写一个自己的upper函数,将一个字符串中所有的小写字母变成大写字母。

这个过程会比较麻烦,一旦遇到字符串修改的问题,是要由麻烦的步骤。

在这是要有小写字母全部变为大写字母,要满足‘a <= s <= z

加入以下代码内容:

def my_upper(old_str):

for s in old_str:

ifa <= s <= z

Pass

因为a对应的编码是97z对应的编码是65,这两者间差值为32。需要将pass语句更改为upper_s = chr(ord(s) 32),这个语句是将他变为一个大写字母之后在重新拼接为新字符串。

拼接语句需要用到new_str = ‘’的字符串,这个字符串适用于要进行修改字符串的功能语句。

for完整书写内容为;

for s in old_str:

if a <= s <= z

upper_s = chr(ord(s) 32)

else:

new_str += s

return new_str

new_str = ‘ ’

ifa <= s <= z

upper_s = chr(ord(s) 32)

new_str += s

return new_str

print(get_max(1,9,6,3,4,5))

print(get_sum(5))

print(get_alpha(hello123good456))

print (get_factorical(4))

print(get_average(1,2,3,4,5,6))

再将语句该为print(my_upper(hel34lo))

三、13-15题讲解过程

(1)写一个自己的 index 函数,统计指定列表中指定元素的所有下标,如果列表中没有指定元素返回-1.先看有多少个数据,找到一个数据就放到链表中去,最后返回列表即可。如果一个列表也没找到就返回-1

(2)写一个自己的 len 函数,统计指定序列中元素的个数。统计元素个数,直接遍历链表,看到一个就 count 加一,一个个累加得到最后的长度

3)写一个函数实现自己in操作,判断指定序列中,指定的元素是否存在

加入代码

def my_in(it,ele):

for i in it:

if i == ele:

Return True

else :

return False

print(my_in([‘zhangsan,lisi,wangwu ],lisi))

整体代码内容为:

def get_max(*args):

x = args[0]

if arg > x

x = arg

for i in range(1,n+1):

x *= i

def get_avergae(*args):

x += arg

print语句修改为:

print(my_in([zhangsan,lisi,wangwu ],jack))

运行结果为:

image.png

如果把语句改为print(my_in({name‘:‘zhangsan,age:18 },name)),运行后会得到,name 是在文件里的。

这里面是一个字典,遍历 key

image.png

相关文章
|
3月前
|
机器学习/深度学习 C语言
【C语言篇】递归详细介绍(基础概念习题及汉诺塔等进阶问题)
要保持最小的步数,每一次汉诺塔问题(无论是最初还是递归过程中的),如果此时初始柱盘子数为偶数,我们第一步是把最上面的盘子移动到中转柱,如果为奇数,我们第一步则是将其移动到目标柱。
72 0
【C语言篇】递归详细介绍(基础概念习题及汉诺塔等进阶问题)
|
5月前
|
IDE 编译器 开发工具
详细解读C语言程序设计:现代方法(第2版)第二章全部习题答案
详细解读C语言程序设计:现代方法(第2版)第二章全部习题答案
39 0
|
6月前
|
存储 安全 编译器
【C++初阶】10 .习题①
【C++初阶】10 .习题①
64 2
|
程序员 C语言
初阶函数经典例题(2)
初阶函数经典例题(2)
|
存储 算法 C语言
[数据结构与算法(严蔚敏 C语言第二版)]第1章 绪论(课后习题+答案解析)
[数据结构与算法(严蔚敏 C语言第二版)]第1章 绪论(课后习题+答案解析)
|
自然语言处理 C语言 C++
C进阶习题(下)
C进阶习题(下)
【初阶C语言】有关的经典题型内含数组及递归函数题型讲解(入门适用)(一)
【初阶C语言】有关的经典题型内含数组及递归函数题型讲解(入门适用)(一)