zoukankan      html  css  js  c++  java
  • Python简单试题2

    1,给定一组数据,将奇数进行从小到大排序,偶数在原位置不变

      例: 原数据:[5, 3, 2, 8, 1, 4]  

        排序后:[5, 3, 2, 8, 1, 4]

        若数组为空,则返回空数组。

      代码如下:

     1 方法一:
     2 def sort_array(source_array):
     3     # Return a sorted array.
     4     #首先判断数组是否为空
     5     if not source_array : return source_array
     6     length = len(source_array) # 求数组的长度
     7     for i in range(length): # 进行循环
     8         if source_array[i] % 2 == 0: # 若为偶数,则跳过
     9             continue
    10         for j in range(i+1,length): # 两层循环,进行排序
    11             if source_array[j] % 2 == 0: # 若为偶数,则跳过
    12                 continue
    13             if source_array[i] > source_array[j]: # 排序
    14                 t = source_array[i]
    15                 source_array[i] = source_array[j]
    16                 source_array[j] = t
    17     return source_array # 返回排序后的数组
    18 方法二(高级版,临摹大佬的):
    19 def sort_array(arr):
    20   odds = sorted((x for x in arr if x%2 != 0), reverse=True)
    21   # 当x为奇数时,挑选出来,进行从大到小排序
    22   # sorted默认为从小到大,加上reverser表示反转的意思
    23   return [x if x%2==0 else odds.pop() for x in arr]
    24   # 返回数组,odds.pop()为删除最后一个数据并返回

    2,返回最大值和最小值

    给定一个字符串,“1 2 2 3”,数字中间由空格隔开,保证字符串最少有一个字符,返回字符串中字符数值的最大值,最小值

    最大值在前,最小值在后,中间同样有空格相隔开

    例:原字符串:‘1 2 3 4’,‘25 8 9 -989 ’

      返回值:‘4 1’   ,  ‘25 -989’

    代码如下

    方法一:
    def high_and_low(numbers):
        # ...
        numbers = numbers.split(' ')
        # 将字符串分隔开并转化为列表,每一个字符为列表的一项
        num_max = int(numbers[0]) # 给num_max赋值列表的第一项的数值形式
        num_min = int(numbers[0])
        for i in numbers: # 进行循环,求出最大值和最小值
            if num_max < int(i):
                num_max = int(i)
            if num_min > int(i):
                num_min = int(i)
        return '%d %d'%(num_max,num_min) # 进行格式化返回
    方法二(高级版,临摹大佬):
    def high_and_low(numbers):
        n = map(int,numbers.split(' ')) # 利用map函数产生两个迭代器
        m = map(int,numbers.split(' '))
        return str(max(n)) + ' ' + str(min(m)) # 进行字符串拼接

    3,元音数

    给定一个字符串,字符串由小写字母和空格组成,求出元音字母的个数,并返回。

    元音字母:a,e,i,o,u

    例:参数:'abcdefg'

      返回值:2

    代码如下:

    方法一:
    def getCount(inputStr):
        num_vowels = 0 # 给定初始值
        # your code here
        vowel = 'aeiou' # 赋值一个包含元音字母的字符串
        for i in inputStr: # 进行循环
            if i in vowel: # 判断字符是否为元音字符
                num_vowels += 1
        return num_vowels
    方法二(临摹版本,没有搞明白):
    def getCount(inputStr):
        return sum(1 for let in inputStr if let in 'aeiou')

    4,序列和

    给定三个数字,分别代表起始数字,结束数字,步长,求出序列的和值。

    如果起始数字大于结束数字,则返回零

    例:参数:(2, 6, 2),(1, 5, 3),(10, 5, 3)

      返回值:12,5,0

    代码如下:

    # 方法一:
    def sequence_sum(begin_number, end_number, step):
        #your code here
        if begin_number > end_number : # 判断起始数字是否大于结束数字
            return 0
        sum = 0
        while begin_number <= end_number: # 进行循环 
            sum += begin_number # 求和
            begin_number += step
        return sum
    # 方法二:
    def sequence_sum(begin_number, end_number, step):
        return sum(range(begin_number,end_number+1,step)) # 运用内置函数求和
    
    
  • 相关阅读:
    JavaScript常用单词整理总结
    花了100多去KTV不是唱歌,竟然是……
    当你左右看看没有发现我时,千万千万别往看……
    winform分页案例简单实现方式~
    来自一位家长的肺腑之言,句句在理!!!
    “小朋友”们节日快乐呀~
    你在学校我安排了你没有做到最多凶你一顿,在公司不一样,直接得让走人!...
    你也可以做一个简易抽奖程序!
    不好意思,你这个加分理由不行……
    【RocketMQ】客户端源码解析
  • 原文地址:https://www.cnblogs.com/cong12586/p/10895236.html
Copyright © 2011-2022 走看看