python一问一答代码怎么写

Python021

python一问一答代码怎么写,第1张

python一问一答代码步骤:

1、对问答库进行拆分,将文本分别拆分为问题库和答案库。

2、将问题进行文本处理:循环遍历问题库里每一个问题。对每一个问题进行文本处理:首先加载停用词库,对问题用nltk分词进行小写化、去停用词、数值归一后重新加入到一个问题库,对这个已经处理完的问题库用zipf定律进行词频过滤。对输入的问题进行文本处理。将处理好的问题库词向量化(用qlove或word2vec,包子词向量化是将词向量相加取平均)后计算问题库向量L2范数。将处理好的输入问题词向量化并计算问题向量L2范数。

3、建立一个简单的倒排表。

4、利用倒排表计算问题库词向量和输入问题词向量的余弦相似度。

5、建立优先队列,采用(优先级(余弦相似度),与相似度对应的问题答案下标)(值越小,优先级越大)找出ToD所对应的答案下标。

6、根据找出的答案下标到答案库里遍历打印即可。

题目没有限定输入的边长一定为整数,应该改为浮点数float

判断是否能构成三角形还要保证三条边都为正数

能构成三角形时再计算面积,否则可能出现负数开根号的情况,会报错

输出要求保留1位小数,要用格式化输出

修改后的代码如下:

import math

x = float(input('请输入三角形的边a:')) # 边长可能为浮点数

y = float(input('请输入三角形的边b:'))

z = float(input('请输入三角形的边c:'))

if x>0 and y>0 and z>0 and x+y>z and x+z>y and y+z>x: # 还要判断是否是正数

  p=(x+y+z)/2

  s=math.sqrt(p*(p-x)*(p-y)*(p-z)) # 能构成三角形的话再计算面积

  print('三角形的周长=%.1f, 面积=%.1f' % (x+y+z, s)) # 格式化输出,保留1位小数

else:

  print('无法构成三角形')

以上代码运行通过,但图片中没有看到输出测试样例,请自行修改print语句以符合输出

解题思路:需要实现两个函数,一个是判断数字是否是素数;一个是求和函数。

实现函数,判断是否是素数,is_prime,具体代码如下:

def is_prime(num):

  """

  判断是否是素数.

  :param num:

  :return:

  """

  result = True

  # 质数大于 1

  if num >1:

      # 查看因子

      for i in range(2, num):

          if (num % i) == 0:

              result = False

              break

      else:

          result = True

  # 如果输入的数字小于或等于 1,不是质数

  else:

      result = False

  return result

实现函数,计算数字start到end之间的所有素数之和,sum,具体代码如下:

def sum(start, end):

  """

  求闭区间[start, end]之间的素数之和.

  :param start:

  :param end:

  :return:    """

  result = 0

  for i in range(start, end + 1):

      if is_prime(i):

          print(i)

          result = result + i

  return result

在main函数中调用求和,代码如下:

if __name__ == '__main__':

  num = 8

  print(is_prime(num))

  num = 5

  print(is_prime(num))

  print(sum(1, 5))

完整 代码如下: