Bootstrap

python算法-查找数组中没有出现的所有数字&简单计算器--Day015


前言

采用创新方式,精选趣味、实用性强的例子,从不同难度、不同算法、不同类型和不同数据结构进行总结,全面提升算法能力。

例1.查找数组中没有出现的所有数字

给定一个整数数组,其中1≤a[i]≤n(n为数组的大小),一些元素出现两次,其他元素出现一次。找到[1,n]中所有未出现在此数组中的元素。

示例:输入[4,3,2,7,8,2,3,1],输出[5,6]

代码如下(示例):

class Solut:
    def sol(self,list):
        n = len(list)#设置列表的长度
        s = set(list)#去掉列表里重复的元素
        res = [i for i in range(1,n+1) if i not in s]#列表推导式,比传统循环快约20%
        return res
if __name__ == '__main__':
    list = [4,3,2,7,8,2,3,1]
    ss = Solut()
    x = ss.sol(list)
    print(x)

得到的结果:[5, 6]

例2.简单计算器

给出整数a、b以及操作符+,-,*,/,来计算结果

代码如下(示例):

class Solut:
    def sol(self,a,b,oper):
        if oper == '+':
            return a+b
        elif oper == '-':
            return a-b
        elif oper == '*':
            return a*b
        elif oper == '/':
            return a/b
if __name__ == '__main__':
    ss = Solut()
    a = int(input("请输入数字:"))
    op = input("请输入符号:")
    b = int(input("请输入数字:"))
    x = ss.sol(a,b,op)
    print(x)

总结

列表推导式(List comprehension)是一种简洁的语法,用于创建新的列表。它允许我们使用一种简洁的方式来定义一个列表,而不需要使用传统的for循环和条件语句。
灵活应用列表推导式,可以提高开发效率。

# 列表推导式

# 原始列表
original_list = [1, 2, 3, 4, 5]

# 使用 列表推导式 推导出新列表
new_list = [x * 2 + 1 for x in original_list]

# 打印新列表
print(new_list)  # 输出: [3, 5, 7, 9, 11]

悦读

道可道,非常道;名可名,非常名。 无名,天地之始,有名,万物之母。 故常无欲,以观其妙,常有欲,以观其徼。 此两者,同出而异名,同谓之玄,玄之又玄,众妙之门。

;