必做题
编写函数,求1+2+3+…N的和
1编写函数,求1+2+3+…N的和
def count(n):
return sum(range(1,n+1))
res = count(100)
print(res)
第二个方法
def qf_sum(n):
sum1=0
for x in range(1,n+1):
sum1+=x
return sum1
print(qf_sum(124364576))
编写一个函数,求多个数中的最大值
def max_nums(lists):
"""
:return:
"""
for x in range(0, len(lists) - 1):
for y in range(0, len(lists) - 1 - x):
if lists[y] > lists[y + 1]:
a = lists[y]
lists[y] = lists[y + 1]
lists[y + 1] = a
return lists
print(len(max_nums(lists=[1,2,6,9,8,7,3,5])))
编写一个函数,实现摇骰子的功能,打印N个骰子的点数和
import random
def sums(n):
i = []
for x in range(n):
a = random.randint(1, 6)
i.append(a)
sum(range(1, n + 1))
return sum(range(1,n+1))
res = sums(10)
print(res)
第二种方法
def play_dice(n):
sums=0
for x in range(n):
sums+=random.randint(1,6)
return sums
print(play_dice(10))
编写一个函数,交换指定字典的key和value。
# 4,
# dict1= {'a':1,'b':2,'c':3}
def New_dict(dict):
"""
:param dict:
:return:
"""
# for x in dict.keys():
# value = dict.pop(x)
# dict[value]=x
# return None
#第二个
res={}
for x,y in dict.items():
res[y]=x
return res
print(New_dict({'a':1,'b':2,'c':3}))
编写一个函数,提取指定字符串中所有的字母,然后拼接在一起产生一个新的字符串
例如: 传入'12a&bc12d-+' --> 'abcd'
def zifu(str):
newzifu = ''
for x in str:
if 'a' <= x <= 'z' or 'A' <= x <= 'Z':
newzifu += x
return newzifu
print(zifu('12a&bc12d-+'))
###第二遍
def new_str(str):
str1=''
for x in str:
if 'a'<=x<='z' or 'A'<=x<='Z':
str1+=x
return str1
print(new_str('asf231wrqf'))
写一个函数,求多个数的平均值
def pinjun(*lists): # * 不定长的多个数, lists:list 指定返回列表
lists=sum(lists) / len(lists)
return lists
print(pinjun(12,58,69,32,54,56))
写一个函数,默认求10的阶乘,也可以求其他数字的阶乘
def jiecheng(m):
x = 1
for res in range(1, m+1):
x *= res
return x
print(jiecheng(1))
==注意:以下方法不能使用系统提供的相应的方法和函数,全部自己写
写一个自己的capitalize函数,能够将指定字符串的首字母变成大写字母
例如: 'abc' -> 'Abc' '12asd' --> '12asd'
a=input('请输入一个字符串')
if 'a'<=a[0]<='z':
print(a.upper())
else:
print(a)
def my_capitalize(a):
q=''
if 'a' <= a[0] <= 'z':
q=a[0].upper()+a[1:]
else:
q=a
return q #返回我需要获得的东西
print(my_capitalize(input('请输入一个字符串'))) 函数名(我需要放进去的变量)
写一个自己的endswith函数,判断一个字符串是否已指定的字符串结束
例如: 字符串1:'abc231ab' 字符串2:'ab' 函数结果为: True
字符串1:'abc231ab' 字符串2:'ab1' 函数结果为: False
例如: 字符串1:'abc231ab' 字符串2:'ab' 函数结果为: True
字符串1:'abc231ab' 字符串2:'ab1' 函数结果为: False
str1=input('第一个字符')
str2=input('第二个字符')
if str1[-len(str2):]!=str2:
print(False)
else:
print(True)
def endswith(str1,str2):
if str1[-len(str2):] != str2:
a=False
else:
a=True
return a
print(endswith('abc231ab','ab'))
##第二种方法
def endswith(str1,str2):
if str1[-len(str2):]==str2:
return True
else:
return False
print(endswith('abc231ab','ab'))
写一个自己的isdigit函数,判断一个字符串是否是纯数字字符串
例如: '1234921' 结果: True
'23函数' 结果: False
'a2390' 结果: False
a=input('请输入一个字符串')
for x in a:
if not '0'<=x<='9':
print(False)
break
else:
print(True)
def isdigit_my(a):
for x in a:
if not '0' <= x <= '9':
y=False
break
else:
y=True
return y
print(isdigit_my('32123'))
写一个自己的upper函数,将一个字符串中所有的小写字母变成大写字母
例如: 'abH23好rp1' 结果: 'ABH23好RP1'
def upper_my(a):
xiaoxie=''
for x in a:
if 'a'<=x<='z':
x=ord(x)-32
x=chr(x)
xiaoxie+=x
else:
xiaoxie+=x
return xiaoxie
print(upper_my('aa#$d11A'))
写一个自己的rjust函数,创建一个字符串的长度是指定长度,原字符串在新字符串中右对齐,剩下的部分用指定的字符填充
例如: 原字符:'abc' 宽度: 7 字符:'^' 结果: '^^^^abc'
原字符:'你好吗' 宽度: 5 字符:'0' 结果: '00你好吗'
def rjust_my(str1,k,str2):
str3=str2*(k-len(str1))+str1
return str3
print(rjust_my('abc',7,'^'))
写一个自己的index函数,统计指定列表中指定元素的所有下标,如果列表中没有指定元素返回-1
例如: 列表: [1, 2, 45, 'abc', 1, '你好', 1, 0] 元素: 1 结果: 0,4,6
列表: ['赵云', '郭嘉', '诸葛亮', '曹操', '赵云', '孙权'] 元素: '赵云' 结果: 0,4
列表: ['赵云', '郭嘉', '诸葛亮', '曹操', '赵云', '孙权'] 元素: '关羽' 结果: -1
def my_index(lists,obj):
indexs=[]
for x in range(len(lists)):
if lists[x]==obj:
indexs.append(x)
if indexs:
return indexs
return -1
print(my_index(['赵云', '郭嘉', '诸葛亮', '曹操', '赵云', '孙权'],'赵云'))
写一个自己的len函数,统计指定序列中元素的个数
例如: 序列:[1, 3, 5, 6] 结果: 4
序列:(1, 34, 'a', 45, 'bbb') 结果: 5
序列:'hello w' 结果: 7
def qf_len(seq):
"""
:param seq:
:return:
"""
cont=0
for x in seq:
cont+=1
return cont
print(qf_len(['赵云', '郭嘉', '诸葛亮', '曹操', '赵云', '孙权']))
写一个自己的replace函数,将指定字符串中指定的旧字符串转换成指定的新字符串
例如: 原字符串: 'how are you? and you?' 旧字符串: 'you' 新字符串:'me' 结果: 'how are me? and me?'
# def qf_replace(str1,old,new):
# """
#
# :param str1:
# :param old:
# :param new:
# :return:
# """
# res=str1.split(old)
# return new.join(res)
# print(qf_replace( 'how are you? and you?','you','me'))