作业 day9

1.编写函数,求1+2+3+…N的和

def sum(n):
    """
    求1+2+3+…N的和
    :param n: N的值
    :return: 
    """
    num = 0
    for i in range(1, n + 1):
        num += i
    print('1+2+3+…N的和 :', num)
    
    
sum(100)

2.编写一个函数,求多个数中的最大值

def imax(*i):
    """
    求多个数中的最大值
    :param i: 一个元祖
    :return: 
    """
    maxx = i[0]
    for j in i:
        if j > maxx:
            maxx = j
    print(maxx)
    

imax(3, 2, 1, 2, 3, 4)

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

def ytz(n):
    """
    打印N个骰子的点数和
    :param i: 摇一次骰子
    :return:
    """
    from random import randint
    num = 0
    for i in range(1, n + 1):
        x = randint(1, 6)
        print('第', i, '个骰子的点数是', x)
        num += x
    print(n, '个骰子的点数和是:', num)
    
    
    
 ytz(3)

4.编写一个函数,交换指定字典的key和value。

def exc(**dict1):
      """
      交换指定字典的key和value。
      :param i: 摇一次骰子
      :return: 
      """
      new1 = {}
      for i in dict1:
          new1[dict1[i]] = i
      dict1 = new1
      print(dict1)
      
      
exc(a=1, b=2, c=3)

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

def new1(n):
    """
    产生一个新的字符串
    :param n: 原字符串
    :return: 
    """
    s = ''
    for i in n:
        if '\u0041' <= i <= '\u005a' or '\u0061' <= i <= '\u007a':
            s += i
    print(s)


new1('12AA&bc12D-+')

6.写一个函数,求多个数的平均值

def new2(*n):
    """
    求多个数的平均值
    :param n: 一个含有多个数的元祖
    :return: 
    """
    print(sum(n)/len(n))
    
    
new2(1,2,3,4)

7.写一个函数,默认求10的阶乘,也可以求其他数字的阶乘

def new3(n=10):
   """
   求一个数字的阶乘
   :param n: 被阶乘的数字
   :return: 
   """
   num = 1
   for i in range(1, n + 1):
       num *= i
   print(num)


new3()

8.写一个自己的capitalize函数,能够将指定字符串的首字母变成大写字母

def ch1(n):
    """
    首字母变成大写字母
    :param n: 指定字符串
    :return:
    """
    if '\u0061'<=n[0]<='\u007a':
        z1=chr(ord(n[0])-32)
        z2=n[1:len(n)]
        print(z1+z2)
    else:
        print(n)

ch1('s12asd')

9.写一个自己的endswith函数,判断一个字符串是否已指定的字符串结束

def ch1(n, m):
    """
    判断一个字符串是否已指定的字符串结束
    :param n: 主字符串
    :param m: 子字符串
    :return:
    """
    print((n[-len(m):len(n)]) == m)


ch1('abc231ab', '1ab')
  1. 写一个自己的isdigit函数,判断一个字符串是否是纯数字字符串
def ch1(n):
    """
    判断一个字符串是否是纯数字字符串
    :param n: 被判断的字符串
    :return:
    """
    for i in n:
        if not ('\u0030' <= i <= '\u0039'):
            print(False)
            break
    else:
        print(True)


ch1('121211213123a3')  

11.写一个自己的upper函数,将一个字符串中所有的小写字母变成大写字母

def ch1(n):
    """
    将一个字符串中所有的小写字母变成大写字母
    :param n:被upper的字符串
    :return:
    """
    new1=''
    for i in range(0,len(n)):
        if not ('\u0061' <= n[i] <= '\u007a'):
            new1+=n[i]
        else:
            z1=chr(ord(n[i]) - 32)
            new1+=z1
    n=new1
    print(n)


ch1('abH23好rp1')

12.写一个自己的rjust函数,创建一个字符串的长度是指定长度,原字符串在新字符串中右对齐,剩下的部分用指定的字符填充

def rj(n,m,k):
    """
    写一个自己的rjust函数,
    创建一个字符串的长度是指定长度,
    原字符串在新字符串中右对齐,
    剩下的部分用指定的字符填充
    :param n: 原字符串
    :param m: 指定的字符
    :param k: 指定长度
    :return:
    """
    if len(n) < k:
        print((k-len(n))*m+n)
    else:
        print(n)

rj('1234','y',6)

13.写一个自己的index函数,统计指定列表中指定元素的所有下标,如果列表中没有指定元素返回-1

def index1(n, ls):
    """
    统计指定列表中指定元素的所有下标,
    如果列表中没有指定元素返回-1
    :param n: 要查找的元素
    :param ls: 指定列表
    :return: 
    """
    if n not in ls:
        print('-1')
    else:
        for i in range(0, len(ls)):
            if ls[i] == n:
                print(i, end=' ')


index1(1, [1, 2, 45, 'abc', 1, '你好', 1, 0])

14.写一个自己的len函数,统计指定序列中元素的个数

def len(xl):
    """

    """
    count=0
    for i in xl:
        count+=1
    print(count)

len([1,1,1,1])

15.写一个自己的max函数,获取指定序列中元素的最大值。如果序列是字典,取字典值的最大值

def maxx(xl):
    """
    获取指定序列中元素的最大值
    :param xl: 指定序列
    :return:
    """
    mx = 0
    if type(xl) == dict :
        for i in xl:
            if xl[i] > mx:
                mx = xl[i]
        print(mx)
    else:
        yy=list(xl)
        mx2 = yy[0]
        for j in range(len(yy)):
            if yy[j] > mx2:
                mx2 = yy[j]
        print(mx2)



maxx([1,1,1,1])
maxx('abcdpzasdz')
maxx({'小明':90, '张三': 76, '路飞':30, '小花': 98} )

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

def cz(n,xl):
    """
    判断指定序列中,指定的元素是否存在
    :param n: 指定的元素
    :param xl: 指定序列
    :return:
    """
    for i in xl:
        if n == i:
            print(True)
            break
    else:
        print(False)


cz('90',(12, 90, 'abc'))
cz(3,[1,1,2,1])
cz('a','abcdpzasdz')
cz('小明',{'小明':90, '张三': 76, '路飞':30, '小花': 98} )   

17.写一个自己的replace函数,将指定字符串中指定的旧字符串转换成指定的新字符串

def re(cc,ff,nff):
    """
    将指定字符串中指定的旧字符串转换成指定的新字符串
    :param cc: 指定字符串
    :param ff: 旧字符串
    :param nff: 新字符串
    :return:
    """
    new1=cc.split()
    li=[]
    for i in range(0,len(new1)):
        if new1[i] == ff:
            li.append(nff)
        else:
            li.append(new1[i])
    str1=''
    for j in li:
        str1+=(j+' ')
    print(str1)

re('how are you? and you?','you?','me?')

18.写四个函数,分别实现求两个列表的交集、并集、差集、补集的功能

s1={1,2,3,4}
s2={3,4,5,6}
tt=[]
t1=list(s1)
t2=list(s2)
def jj(n,m):
    """
    交集
    :param n: 集合1
    :param m: 集合2
    :return:
    """


    for i in s1:
        if i in s2:
            tt.append(i)
    ss=set(tt)
    print(ss)

jj(t1,t2)

def bing(n, m):
    """
    并集
    :param n: 集合1
    :param m: 集合2
    :return:
    """
    for i in n:
        if i not in m:
            m.append(i)
    print(set(m))

bing(t1,t2)

def cj(n, m):
    """
    差集
    :param n: 集合1
    :param m: 集合2
    :return:
    """
    cj=[]
    dj=[]
    for j in n:
        if j not in m:
            cj.append(j)
    for k in m:
        if k not in n:
            dj.append(k)
    print('集合1 - 集合2的差集:',set(cj))
    print('集合2 - 集合1的差集:',set(dj))


cj(t1,t2)



sa={4,5,6}
sc={1,2,3,4,5,6,7,8}
zz1=[]
zz2=[]
def bu(n, m):
    """
    补集
    :param n:
    :param m:
    :return:
    """
    if n>m or m>n:
        if n > m:
            for i in n:
                if i not in m:
                    zz1.append(i)
            print('大集合对于小集合的补集是',zz1)

        elif m > n :
            for j in m:
                if j not in n:
                    zz2.append(j)
            print('大集合对于小集合的补集是',zz2)
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 概要 64学时 3.5学分 章节安排 电子商务网站概况 HTML5+CSS3 JavaScript Node 电子...
    阿啊阿吖丁阅读 9,395评论 0 3
  • 官网 中文版本 好的网站 Content-type: text/htmlBASH Section: User ...
    不排版阅读 4,521评论 0 5
  • HTML 5 HTML5概述 因特网上的信息是以网页的形式展示给用户的,因此网页是网络信息传递的载体。网页文件是用...
    阿啊阿吖丁阅读 4,119评论 0 0
  • 第5章 引用类型(返回首页) 本章内容 使用对象 创建并操作数组 理解基本的JavaScript类型 使用基本类型...
    大学一百阅读 3,275评论 0 4
  • ORA-00001: 违反唯一约束条件 (.) 错误说明:当在唯一索引所对应的列上键入重复值时,会触发此异常。 O...
    我想起个好名字阅读 5,484评论 0 9