"""_ author _=陈泓羽"""
1.编写函数,求1+2+3+…N的和
print("================第1题==============")
def chy_sum(n):
sum1 = 0
x = 1
while x < (n+1):
sum1 += x
x += 1
print(sum1)
chy_sum(100)
2.编写一个函数,求多个数中的最大值
print("================第2题============")
def max_value(*num):
max1 = num[0]
for index in range(1,len(num)):
if num[index] > max1:
max1 = num[index]
print(max1)
max_value(1,2,3,4,10,5,32)
3.编写一个函数,实现摇骰子的功能,打印N个骰子的点数和
print("================第3题============")
def dice_sum(n):
x=1
sum1 = 0
import random
while x < n+1:
a = random.randint(1,6)
sum1 += a
x += 1
print(sum1)
dice_sum(5)
4.编写一个函数,交换指定字典的key和value。
例如:dict1={'a':1, 'b':2, 'c':3} --> dict1={1:'a', 2:'b', 3:'c'}
print("================第4题============")
def exchange_dict(dict1:dict):
new_dict = {}
for key in dict1:
new_dict[dict1[key]] = key
print(new_dict)
dict2={'a':1, 'b':2, 'c':3}
exchange_dict(dict2)
5.编写一个函数,提取指定字符串中所有的字母,然后拼接在一起产生一个新的字符串
例如: 传入'12a&bc12d-+' --> 'abcd'
print("================第5题============")
def stitching_letter(str1):
str2 = ""
for chr1 in str1:
if "A" <= chr1 <= "Z" or "a" <= chr1<= "z":
str2 += chr1
print(str2)
stitching_letter("12a&bc12d-+")
6.写一个函数,求多个数的平均值
print("================第6题============")
def chy_average(*num):
sum1 = 0
for x in num:
sum1 += x
print(sum1/len(num))
chy_average(1,2,3,4,5,6)
7.写一个函数,默认求10的阶乘,也可以求其他数字的阶乘
print("================第7题============")
def factorial(n):
sum1 = 1
x = 1
while x < (n+1):
sum1 *= x
x += 1
print(sum1)
factorial(10)
===============注意:以下方法不能使用系统提供的方法和函数,全部自己写逻辑====================
8. 写一个自己的capitalize函数,能够将指定字符串的首字母变成大写字母
例如: 'abc' -> 'Abc' '12asd' --> '12asd'
print("================第8题============")
def chy_capitalize(str1):
str2 = ""
if "a"<= str1[0]<="z":
str2 = chr(ord(str1[0])-32)+str1[1:len(str1)]
else:
print(str1)
print(str2)
chy_capitalize('abc')
9.写一个自己的endswith函数,判断一个字符串是否已指定的字符串结束
例如: 字符串1:'abc231ab' 字符串2:'ab' 函数结果为: True
字符串1:'abc231ab' 字符串2:'ab1' 函数结果为: False
print("================第9题============")
def chy_endswith(str1,str2):
lenth1 = len(str2)
if str1[-lenth1::] == str2:
print(True)
else:
print(False)
chy_endswith('abc231ab','ab')
10.写一个自己的isdigit函数,判断一个字符串是否是纯数字字符串
例如: '1234921' 结果: True
'23函数' 结果: False
'a2390' 结果: False
print("================第10题============")
def chy_isdighit(str1):
for chr1 in str1:
if not("0"<= chr1 <= "9"):
print(False)
break
else:
print(True)
chy_isdighit("123491")
chy_isdighit("23函数")
chy_isdighit("a2390")
11.写一个自己的upper函数,将一个字符串中所有的小写字母变成大写字母
例如: 'abH23好rp1' 结果: 'ABH23好RP1'
print("================第11题============")
def chy_upper(str1):
new_str=""
for chr1 in str1:
if "a"<= chr1 <="z":
new_str += chr(ord(chr1)-32)
else:
new_str += chr1
print(new_str)
chy_upper("abH23好rp1")
12.一个自己的rjust函数,创建一个字符串的长度是指定长度,原字符串在新字符串中右对齐,剩下的部分用指定的字符填充写
例如: 原字符:'abc' 宽度: 7 字符:'^' 结果: '^^^^abc'
原字符:'你好吗' 宽度: 5 字符:'0' 结果: '00你好吗'
print("================第12题============")
def chy_rjust(str1,width,chr1):
length1 = len(str1)
length2 = width -length1
str2 = chr1*length2 + str1
print(str2)
chy_rjust("abc",7,"^")
13.写一个自己的index函数,统计指定列表中指定元素的所有下标,如果列表中没有指定元素返回-1
例如: 列表: [1, 2, 45, 'abc', 1, '你好', 1, 0] 元素: 1 结果: 0,4,6
列表: ['赵云', '郭嘉', '诸葛亮', '曹操', '赵云', '孙权'] 元素: '赵云' 结果: 0,4
列表: ['赵云', '郭嘉', '诸葛亮', '曹操', '赵云', '孙权'] 元素: '关羽' 结果: -1
print("================第13题============")
def chy_index(list1,item):
count1 = 0
count2 = 0
for item1 in list1:
if item == item1:
print(count1,end=",")
count1 += 1
else:
count1 +=1
if item not in list1:
print(-1)
list2 = ['赵云', '郭嘉', '诸葛亮', '曹操', '赵云', '孙权']
chy_index(list2,"赵云")
chy_index(list2,"关羽")
14.写一个自己的len函数,统计指定序列中元素的个数
例如: 序列:[1, 3, 5, 6] 结果: 4
序列:(1, 34, 'a', 45, 'bbb') 结果: 5
序列:'hello w' 结果: 7
print("================第14题============")
def chy_len(seq):
count1 = 0
for item in seq:
count1 += 1
print(count1)
list1=[1, 3, 5, 6]
list2=(1, 34, 'a', 45, 'bbb')
list3='hello w'
chy_len(list1)
chy_len(list2)
chy_len(list3)
15.写一个自己的max函数,获取指定序列中元素的最大值。如果序列是字典,取字典值的最大值
例如: 序列:[-7, -12, -1, -9] 结果: -1
序列:'abcdpzasdz' 结果: 'z'
序列:{'小明':90, '张三': 76, '路飞':30, '小花': 98} 结果: 98
print("================第15题============")
def chy_max(sequence):
if type(sequence) != dict:
max1 = sequence[0]
for chr1 in sequence:
if chr1 > max1:
max1 = chr1
else:
max1 = 0
for x in sequence.values():
if x > max1:
max1 = x
print(max1)
chy_max({'小明':90, '张三': 76, '路飞':30, '小花': 98})
16.写一个函数实现自己in操作,判断指定序列中,指定的元素是否存在
例如: 序列: (12, 90, 'abc') 元素: '90' 结果: False
序列: [12, 90, 'abc'] 元素: 90 结果: True
print("================第16题============")
def chy_in(seq,item):
for item1 in seq:
if item == item1:
print(True)
break
else:
print(False)
list1= (12, 90, 'abc')
chy_in(list1,"90")
17.写一个自己的replace函数,将指定字符串中指定的旧字符串转换成指定的新字符串
例如: 原字符串: 'how are you? and you?' 旧字符串: 'you' 新字符串:'me' 结果: 'how are me? and me?'
print("================第17题============")
def chy_replace(str1,str2,str3):
num1 = 0
num2 = len(str2)
new_str = ""
while num1 <= len(str1)-1:
if str1[num1:num2] == str2:
new_str += str3
num1 += 3
num2 += 3
else:
new_str += str1[num1]
num1 += 1
num2 += 1
print(new_str)
chy_replace('how are you? and you?' ,'you' ,'me')
18.写四个函数,分别实现求两个列表的交集、并集、差集、补集的功能
print("================第18题============")
# 交集
def chy_intersection(list1,list2):
set1 = set(list1)
set2 = set(list2)
print(set1&set2)
chy_intersection([1,2,3],[3,4,5])
# 并集
def union_set(list1,list2):
set1 = set(list1)
set2 = set(list2)
print(set1|set2)
union_set([1,2,3],[3,4,5])
# 差集
def difference_set(list1,list2):
set1 = set(list1)
set2 = set(list2)
print(set1-set2)
difference_set([1,2,3],[3,4,5])
# 补集
def complement_set(list1,list2):
set1 = set(list1)
set2 = set(list2)
print(set1^set2)
complement_set([1,2,3],[3,4,5])
```