鱼C论坛

 找回密码
 立即注册
楼主: 新手·ing

[技术交流] Python:每日一题 17(答题领鱼币)

  [复制链接]
发表于 2019-3-25 20:54:03 From FishC Mobile | 显示全部楼层
莫名其妙短路
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-4-28 10:46:06 | 显示全部楼层
有谁来帮我看看代码里有没有什么不妥吗?
import random
l = [random.randint(1,99) for i in range(10)]
l.sort()
print(l)
l1 = []
for j in range(len(l)-1):
    l1.append(l[j+1] - l[j])
print(min(l1))
   
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-5-22 16:49:57 | 显示全部楼层
import numpy as np
array = []
for i in range(np.random.randint(1,100)):   #####随机取一个数组
    array.append(random.uniform(1,100))
array = np.array(array)
Arr = []
def iter1(array,count,length):
    global value
    if count != length:
        for i in range(length):
            if count == i:
                continue
            value = abs(array[count] - array[i])
            Arr.append(value)
        count +=1
        return iter1(array,count,length)
    else:
        z= min(Arr)
    return z
            
min_value = iter1(array , count=0,length=len(array))
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-8-13 17:22:20 | 显示全部楼层
  1. import random as r
  2. # 解法1:双层循环并计算两数差求绝对值,加入列表后调用min函数求解
  3. def answer1():
  4.     list2 = []
  5.     for each in list1:
  6.         for index in range(list1.index(each)+1, len(list1)):
  7.             result = abs(each - list1[index])
  8.             list2.append(result)
  9.     print(min(list2))

  10. # 解法2:双层循环并计算两数差求绝对值,加入集合后调用min函数求解
  11. def answer2():
  12.     set1 = set()
  13.     for each in list1:
  14.         for index in range(list1.index(each) + 1, len(list1)):
  15.             result = abs(each - list1[index])
  16.             set1.add(result)
  17.     print(min(set1))

  18. #解法3:将列表数据排序后,迭代求出前后项之间的距离(即绝对值),选出最近的两个点即为所求
  19. def answer3():
  20.     list1.sort()
  21.     m = min([abs(list1[i] - list1[i + 1]) for i in range(len(list1) - 1)])
  22.     print(m)

  23. if __name__ == '__main__':
  24.     list1 = [r.randint(-100,100) for i in range(20)]    #生成包含20个-50到100随机数的列表
  25.     print(list1)
  26.     answer1()
  27.     print("------------")
  28.     answer2()
  29.     print("------------")
  30.     answer3()
  31.     print(list1)
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-8-14 14:38:58 | 显示全部楼层
还可以把这两个数打印出来:
def fn(lst):
    a = {}
    for i in range(0, len(lst) - 1):
        for j in range(i + 1, len(lst)):
            a[lst[i], lst[j]] = abs(lst[i] - lst[j])
    print(a)
    for k, v in a.items():
        if v == min(a.values()):
            print(k, v)
lst = [9,5,69,2,6,121,120,0,-1,-2,1]
fn(lst)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-8-15 11:25:29 | 显示全部楼层
good
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-8-29 12:36:06 | 显示全部楼层
交作业~
  1. def func(data):
  2.           temp = abs(data[1]-data[0])
  3.           for i in range(1,len(data)-1):
  4.                     min_num = abs(data[i+1]-data[i])
  5.                     if temp > min_num:
  6.                               temp = min_num
  7.           return temp

  8. def main():
  9.           data = input('请输入一组数组:').split(',')
  10.           for each in range(len(data)):
  11.                     data[each] = int(data[each])
  12.           min_num = func(data)
  13.           print('最小的值是%d'%min_num)

  14. if __name__ =='__main__':
  15.           main()
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-11-27 09:05:31 | 显示全部楼层
def fun17(X):             #X定义数组长度
    L = []
    Min = []   
    for i in range(X):
        L.append(int(input("Input integer data for list element:")))
    L.sort()
    for k in range(len(L)-1):
        Min.append(L[k+1]-L[k])
    Min.sort()
    return Min[0]
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-8 20:55:32 | 显示全部楼层
def abs_num(a = []):
    b = 0
    c = set()
    if len(set(a)) < len(a):
        return 0
    else:
        for i in range(len(a)):
            for j in a[0:i]+a[i+1:]:
                c.add(abs(a[b] -j))
            b += 1
        return min(c)

a = input('Enter:')
a = a.split(',')
alist = []
for i in a:
    alist.append(int(i))
print(abs_num(alist))
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-13 00:50:32 | 显示全部楼层
def f17(L:list)->int:
    L1=sorted(L)
    return min([L1[i]-L1[i-1] for i in range(1,len(L))])
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-15 21:06:26 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-2-15 22:08:33 | 显示全部楼层
def qmin(data):
    data.sort()
    min=data[1]-data[0]
    for i in range(1,len(data)-1):
        if min>data[i+1]-data[i]:
            min=data[i+1]-data[i]
    return min

a=[1,89,47,25]
qmin(a)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-18 16:08:19 | 显示全部楼层
def smallest(list_integer):
    smallest=abs(list_integer[0]-list_integer[1])
    for each1 in list_integer:
        for each2 in list_integer:
            if each1!=each2:
                if abs(each1-each2)<smallest:
                    smallest=abs(each1-each2)
    return smallest

print([1,2,3,4,5,-1])
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-24 16:16:36 | 显示全部楼层
  1. print('----------每日练习题17----------')
  2. #有一个整数数组,请求出两两之差绝对值最小的值,
  3. #记住,只要得出最小值即可,不需要求出是哪两个数

  4. def fun(x,y):
  5.     minnum = abs(x[0] - y[0])
  6.     for i in x:
  7.         for j in y:
  8.             if abs(i - j) < minnum:
  9.                 minnum = abs(i - j)
  10.         return minnum

  11. import random as rd
  12. x = []
  13. y = []
  14. for i in range(10):
  15.     x.append(rd.randint(-10000,10000))
  16. x.append(rd.randint(-10000,10000))
  17. print(x)
  18. for j in range(10):
  19.     y.append(rd.randint(-10000,10000))
  20. y.append(rd.randint(-10000,10000))
  21. print(y)

  22. print(fun(x, y))
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-1 10:55:14 | 显示全部楼层
  1. print(min([abs(num[j]-num[i]) for i in range(len(num)) for j in range(i+1,len(num))]))
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-8 23:13:34 | 显示全部楼层
  1. #有一个整数数组,请求出两两之差绝对值最小的值
  2. dlt=[]
  3. test=[1,2,5,10,32,15,1,3]
  4. x.sort()
  5. for i in range(len(x)-1):
  6.     abs1=abs(x[i]-x[i+1])
  7.     dlt.append(abs1)
  8. print('数组两两之差绝对值最小为%d'%min(dlt))

复制代码

怎么读取用户输入的列表搞不动
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-12 09:40:47 | 显示全部楼层
嘻嘻
  1. j = []
  2. k = int(input("这个列表有有几个数呢?"))
  3. for i in range(k):
  4.         j.append(int(input()))
  5. min = abs(j[0]-j[1])
  6. for i in range(k):
  7.         for p in range(i+1,k):
  8.                 if abs(j[i]-j[p])<min:
  9.                         min = abs(j[i]-j[p])

  10. print(min)
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-12 11:01:27 | 显示全部楼层
  1. def test17(my_list):
  2.     min_list = []
  3.     for i in range(len(my_list) - 1):
  4.         n = abs(my_list[i] - my_list[i + 1])
  5.         min_list.append(n)

  6.     min_value = min(min_list)
  7.     return min_value

  8. a = [3,15,24,33,9,19,40,54,36]

  9. print(test17(a))
复制代码



>>>9
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-15 12:05:53 | 显示全部楼层
#求两两相差的绝对值,需要的次数为(n-1)*n/2
import random as r
def test17(my_list):
    the_list = []
    geshu=len(my_list)
    for i in range(geshu-1):
        for j in range(1+i,geshu):
            n=my_list[i]-my_list[j]
            the_list.append(abs(n))
    return min(the_list)
a = [r.randint(1,100) for i in range(5)]#在这里可改为指定的数组
print(a)
print()
print('两两之差绝对值最小的值是:%d'%test17(a))
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-15 12:32:03 | 显示全部楼层
  1. def func(list):
  2.     varlist = []
  3.     for x in range(len(list)):
  4.         for y in range(len(list)):
  5.             if x == y:
  6.                 continue
  7.             else:
  8.                 varlist.append(list[x]-list[y])
  9.     for i in range(len(varlist)):
  10.         if varlist[i] <= 0:
  11.             varlist[i] = -varlist[i]
  12.     min = varlist[0]
  13.     for i in varlist:
  14.         if min >= i:
  15.             min = i
  16.     return min
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-28 23:48

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表