龙空技术网

Python随笔36:Python基础编程练习题37~38

挂可挂 122

前言:

现时各位老铁们对“python36升级37”大概比较讲究,咱们都想要知道一些“python36升级37”的相关文章。那么小编在网上收集了一些有关“python36升级37””的相关文章,希望大家能喜欢,各位老铁们一起来学习一下吧!

注:本文所有代码均经过Python 3.7实际运行检验,保证其严谨性。


Python


Python基础练习题37:0的组合

给定一个包含若干个整数(可能存在重复整数)的列表,判断其中是否存在三个元素a,b,c,使得a+b+c=0?找出所有满足条件且不重复的这样的三个数的组合。

输入格式:

共一行,列表中元素以空格隔开。

输出格式:

共一行,为不重复组合的个数,不存在这样的组合就输出0。

输入样例:

-1 0 1 2 -1

输出样例:

2

(注:两个组合是-1,-1,2和-1,0,1)

解答:本题看起来很复杂,但其实只要三个循环遍历,加上筛选条件,其它的交给计算机即可解决问题。

l = list(map(int, input().split()))l = sorted(l)t = tuple(l)l2 = []for i in range(len(t)):    for j in range(len(t)):        for k in range(len(t)):            if i != j and j != k and k != i and t[i] + t[j] + t[k] == 0:  # 列出筛选条件。                l1 = [t[i], t[j], t[k]]                l1 = sorted(l1)                t1 = tuple(l1)                l2.append(t1)print(len(set(l2)))


Python基础练习题38:乘积的列表

给定一个包含若干个整数的列表alist,要求返回输出列表blist,blist中的元素为除与alist对应位置上的元素之外其余各元素的乘积。

输入格式:

共一行,列表中的元素以空格隔开。

输出格式:

共一行,为一个列表。

输入样例:

1 2 3

输出样例:

[6, 3, 2]

(注:原列表的1,对应输出6 = 2 * 3,原列表的2,对应输出3=1 * 3,原列表的3,对应输出2 = 1 * \2)

解答:计算加法的基础数为0,计算乘法的基础数为1。这题的关键在于第2个列表中的对应数的乘法计算中,要先排除与它的索引相同的数,然后再累计相乘剩下的数。

l1 = list(map(int, input().split()))l2 = l1[:]t1 = tuple(l1)for i in range(len(t1)):    r = 1  # 乘法基础数为1。    for j in range(len(t1)):        if i != j:            r *= t1[j]            l2[i] = rprint(l2)

To be continued.

标签: #python36升级37 #python37升级到38