小编cho*_*on4的帖子

浮点计算总是偏离1

根据我的书输入5和6.5进入此功能应该返回73.6901.我一直得到72.6901.我知道公式是完美的,我无法想象它还能是什么.浮点数是否存在一定程度的不准确性,可能导致此逻辑错误?

import math

def area(n, side):
    area= (n * (side * side))/(
        4 * math.tan(math.pi/n))
    return area

def main():

    sideNumber = int(input("Enter the number of sides :"))
    sideLength = float(input("Enter the side: "))


    print("The area of the polygon is %f" %(area(sideNumber, sideLength)))


if __name__ == "__main__":
    main()
Run Code Online (Sandbox Code Playgroud)

python

1
推荐指数
1
解决办法
85
查看次数

在Python中通过启动和停止字符串值进行切片

我有一个字符串,其中有一些我需要从中提取的值.例如:"FEFEWFSTARTFFFPENDDCDC".我怎么能做一个从"START"一路走到哪一步的表达式"END"

我之前通过创建使用for循环和string.find("START")定位开头和结尾的函数来尝试这样做,但这似乎没有效果,看起来过于复杂.没有使用复杂的循环,有没有更简单的方法来做到这一点?


编辑:

忘了这部分.如果有不同的结束值怎么办?换句话说,而不是只与结束"END",价值观"DONE""NOMORE"也将结束了吗?除此之外,整个字符串中有多个开始和结束.例如:"STARTFFEFFDONEFEWFSTARTFEFFENDDDW".

EDIT2:样品运行:起始值:ATG.结束值:TAG,TAA,TGA

"Enter a string": TTATGTTTTAAGGATGGGGCGTTAGTT
TTT
GGGCGT
Run Code Online (Sandbox Code Playgroud)

"Enter a string": TGTGTGTATAT
"No string found"
Run Code Online (Sandbox Code Playgroud)

python string

1
推荐指数
1
解决办法
688
查看次数

如何在不执行数学运算符的情况下接受它们?

我的用户必须输入电话号码.如果用户在引号中输入数字,我的代码工作正常,但如果用户输入它而没有引号,那么Python将使用算术计算输入的数字,接受破折号( - )作为减法符号.我该如何解决?

str(input("enter a phone number please"))
Run Code Online (Sandbox Code Playgroud)

结果

输入电话号码:387-888-8992'-9493'

预期结果

enter a phone number please387-888-8992
>>>'387-888-8992'
Run Code Online (Sandbox Code Playgroud)

python

1
推荐指数
1
解决办法
44
查看次数

在列表中查找重复元素

我有一个清单:

nums = [1, 2, 3, 1, 5, 2, 7, 11]
Run Code Online (Sandbox Code Playgroud)

我正在尝试创建一个函数,返回每个数字在列表中出现的次数.输出可能如下所示:

1 occurred 2 times
2 occurred 2 times
3 occurred 1 time
5 occurred 1 time
...
...
Run Code Online (Sandbox Code Playgroud)

这是我到目前为止所尝试的: -
为列表中的每个元素创建字典
-Have嵌套循环遍历每个元素并针对每个其他元素进行检查 -
如果元素匹配,则将该元素添加到该元素的字典键中

问题:
每次循环时,它都会重新检测相同的元素.因此,无论某个元素有多少,而不是加1,它都会被n次幂提升

Enter integers between 1 and 100: 5 2 41 4 5 2 2 4
4 occurs 4 times
2 occurs 9 times
41 occurs 1 times
5 occurs 4 times
Run Code Online (Sandbox Code Playgroud)

码:

def main():
    original_nums = input("Enter integers between 1 and 100: ") …
Run Code Online (Sandbox Code Playgroud)

python duplicates python-3.x

1
推荐指数
1
解决办法
285
查看次数

Java:抛出异常后程序不会崩溃

我在 while 循环的每次迭代中都进行了异常处理。由于某种原因,当抛出异常的条件为真时,会显示异常消息,但程序仍继续运行而不会中断。我以前从未见过这种情况发生,怀疑这是因为 while 循环。我必须在每次迭代时检查队列中是否存在空对象。另一个线程建议使用 try 子句,因此我更改了代码以使用 try 子句,但我仍然得到相同的结果。抛出异常但程序不会崩溃。是什么原因造成的?

Purchase ownedShares;
while (numSharesToSell > 0) {
  try  {
    ownedShares = q.peek();
  }
  catch(NullPointerException ex) {
    throw new IllegalArgumentException("Not enough shares");
  }
Run Code Online (Sandbox Code Playgroud)

编辑2:

使用 isEmpty() 也不起作用:

Purchase ownedShares;
while (numSharesToSell > 0) {
  if (q.isEmpty())
    throw new IllegalArgumentException("Not enough shares");
  else
    ownedShares = q.peek();
 // try  {
Run Code Online (Sandbox Code Playgroud)

这里的核心错误并不是异常没有被执行。它正在执行,并且正在打印消息“没有足够的份额”。问题是,当发生这种情况时,程序不会停止。外层循环继续。

编辑3:

我正在修改的方法调用包装在 try/catch 块中,这可以防止我抛出的任何错误导致程序崩溃。这让我得出结论,为我提供此代码的骨架类的人不希望异常导致程序崩溃。

java exception

1
推荐指数
1
解决办法
3018
查看次数

为什么 Laravel 允许我们在路由中渲染视图?

在我大学的最新讲座中,我的教授正在从路线返回视图模板。

Route::get('/list', function() {
 return View::make('list'); 
}
Run Code Online (Sandbox Code Playgroud)

我不明白这怎么可能。我认为只有控制器可以与视图交互?路线如何与视图交互?这是否意味着我们应用程序中的任何类都可以调用View::make和控制呈现的视图模板?

这就提出了一个更大的问题:返回的路线是什么?换句话说,当我们的 Laravel 服务器收到请求时,我们服务器中的某些内容会 ping 路由,并且我们的路由会返回一个模板。返回模板的路由是什么?我假设它是index.php,我知道那里有很多引导方法。有人可以解释 Laravel 工作原理的内部结构以及为什么我们可以从路由渲染视图吗?

php laravel

1
推荐指数
2
解决办法
1812
查看次数

Laravel:where 和 whereHas 之间的区别

where() 和 whereHas() 这两个方法有什么区别?它们在 Laravel 文档中似乎非常相似。

laravel

1
推荐指数
1
解决办法
2319
查看次数

终端:如何将参数传递到别名中?

在添加到我的 $PATH 的目录中,我有以下文件:

filename="$1" day="$2" month="$3"
ruby -r "./SomeClass.rb" -e 'SomeClass.run($filename, $day, $month)'
Run Code Online (Sandbox Code Playgroud)

假设这个文件名为 someclass。当我在终端中输入 someclass 时,我的系统会将其识别为有效命令并正确运行相应的 Ruby 文件。但参数没有被传入。如何将参数传递到别名中?

macos bash terminal

1
推荐指数
1
解决办法
1596
查看次数

Javascript:如何在postfix增量运算符之前评估比较运算符?

根据此优先级表,递增具有比比较运算符高的优先级.然而,当我在同一个表达式中递增和比较时,首先评估比较.为什么是这样?

var i = 0, k = 0;
console.log(i === k);
>true
console.log(i++ === k);
>true
>false
Run Code Online (Sandbox Code Playgroud)

为什么在postfix增量运算符之前评估比较运算符?

javascript

1
推荐指数
1
解决办法
69
查看次数

_.memoize只缓存的第一个参数

我今天意识到_memoize函数只缓存提供的第一个参数的结果.

function add(a, b) {
  return a + b;
}
var sum = _.memoize(add);
console.log(sum(1,2));
>>> 3
console.log(sum(1,5));
>>> 3
Run Code Online (Sandbox Code Playgroud)

这是一个错误还是故意的?

javascript underscore.js

1
推荐指数
1
解决办法
403
查看次数