- 编写函数,接收两个正整数作为参数,返回一个数组,其中第一个元素为最大公约数,第二个元素为最小公倍数。不允许使用math模块的gcd( )函数。
def demo(m, n): # 自定义demo函数其中包含两个参数m,n
p = m * n # 将m与n的乘积赋值给p
while m != 0: # 当m!=0时执行循环
r = n % m # 将n与m的余数赋值给r
n, m = m, r # 将m赋值给n,r赋值给m
return (n, p // n) # 返回最大公约数,最小公倍数
print(demo(20, 30)) # 调用自定义demo函数并输出最大公约数,最小公倍数
2.编写函数,接收一个所有元素值互不相等的整数列表 x 和一个整数 n ,要求将值为n的元素作为支点,将列表中所有值小于n的元素全部放到 n 的前面,所有值大于n 的元素放到 n 的后面。
import random # 导入random模块
def demo(x, n): # 自定义demo函数其中包含两个参数,x为列表,k为给定值
i = x.index(n) # 如果包含子字符串n返回开始的索引值赋值给i
x[0], x[i] = x[i], x[0] # 将指定元素于第0个元素交换
key = x[0] # 将指定元素赋值给key
i = 0 # 将0赋值给i
j = len(x) - 1 # 将列表元素长度-1赋值给j,由于下标从0开始
while i < j: # 当i<j时执行循环
while i < j and x[j] >= key: # 当i<j并且x[j]不小于给定值key,执行循环
j -= 1 # j自减1
x[i] = x[j] # 将x[j]赋值给x[i]
while i < j and x[i] <= key: # 当i<j并且x[j]不大于给定值key,执行循环
i += 1 # i自增加1
x[j] = x[i] # 将x[i]赋值给x[j]
x[i] = key # 如果i不小于j,将给定值key赋值给x[i]
x = list(range(1, 10)) # 取1~9九个数字并将其赋值给列表x
random.shuffle(x) # random.shuffle()函数随机打乱数组顺序
print(x) # 输出列表x
demo(x, 7) # 调用函数demo
print(x) # 输出操作后列表
- 编写函数,接收包含20个整数的列表lst和一个整数k作为参数,返回新列表。处理规则为:将列表lst中下标k 之前的元素逆序,下标k之后的元素逆序,然后将整个列表lst中的所有元素逆序。
def demo(lst, k): # 自定义demo函数其中包含两个参数,lst为列表,k为给定值
x = lst[:] # 将列表lst赋值给列表x
x[:k] = reversed(x[:k]) # 对定值k前面的元素反转逆序
x[k:] = reversed(x[k:]) # 对定值k后面的元素反转逆序
x.reverse() # 将列表所有元素逆序
return x # 返回列表x
lst = list(range(1, 21)) # 取20个数
print('操作前:') # 注释
print(lst) # 输出操作前列表
print('操作后:') # 注释
print(demo(lst, 6)) # 输出操作后列表
4.编写函数,计算字符串匹配的准确率。此算法可用在打字练习程序中,用来测试用户输入字符串的准确率。
def rate(origin, userInput): # 自定义函数
if not (isinstance(origin, str) and isinstance(userInput, str)): # 用isinstance() 函数来判断origin,userInput是否是字符串类型
print("这两个参数必须是字符串") # 不是字符串类型时提示
return # 结束返回
if len(origin) < len(userInput): # 判断用户输入长度是否大于原始长度
print('抱歉,第二个参数字符串应较短') # 如果户输入长度是大于原始长度,提升信息
return # 结束返回
right = 0 # 计数器,用来记录相同字符数
for origin_char, user_char in zip(origin, userInput): # 遍历origin,userInput两个字符串,并将相应位置的字符打包为元组放在列表中
if origin_char == user_char: # 如果对应位置字符相同
right += 1 # 计数器加1
return right / len(origin) # 返回相同字数除以原始长度,即准确率
origin = 'Shandong Institute of Business and Technology' # 输入原始字符串
# userInput = 'Shandong Institute of Business and Technology'
userInput = 'ShanDong institute of business and technolog' # 用户输入字符串
print(rate(origin, userInput)) # 输出结果
版权声明:本文为m0_55439140原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。