相关疑难解决方法(0)

在Python中将整数转换为字符串?

我想在Python中将整数转换为字符串.我是徒劳地捣蛋:

d = 15
d.str()
Run Code Online (Sandbox Code Playgroud)

当我尝试将其转换为字符串时,它显示的错误就像int没有调用任何属性一样str.

python string integer

1282
推荐指数
11
解决办法
323万
查看次数

在Python中将十六进制字符串转换为int

如何在Python中将十六进制字符串转换为int?

我可以把它作为" 0xffff"或只是" ffff".

python string hex

708
推荐指数
7
解决办法
84万
查看次数

将列表中的所有字符串转换为int

在Python中,我想将列表中的所有字符串转换为整数.

所以,如果我有:

results = ['1', '2', '3']
Run Code Online (Sandbox Code Playgroud)

我该怎么做:

results = [1, 2, 3]
Run Code Online (Sandbox Code Playgroud)

python int list

542
推荐指数
6
解决办法
102万
查看次数

如何在Python中将字符串转换为整数?

我有一个来自MySQL查询的元组元组,如下所示:

T1 = (('13', '17', '18', '21', '32'),
      ('07', '11', '13', '14', '28'),
      ('01', '05', '06', '08', '15', '16'))
Run Code Online (Sandbox Code Playgroud)

我想将所有字符串元素转换为整数并将它们放回列表列表中:

T2 = [[13, 17, 18, 21, 32], [7, 11, 13, 14, 28], [1, 5, 6, 8, 15, 16]]
Run Code Online (Sandbox Code Playgroud)

我试图实现它,eval但没有得到任何体面的结果.

python string integer

427
推荐指数
7
解决办法
163万
查看次数

为什么.NET使用银行家的舍入作为默认值?

根据文档,该decimal.Round方法使用round-to-even算法,这对于大多数应用程序来说并不常见.所以我总是最终编写一个自定义函数来做更自然的圆半算法:

public static decimal RoundHalfUp(this decimal d, int decimals)
{
    if (decimals < 0)
    {
        throw new ArgumentException("The decimals must be non-negative", 
            "decimals");
    }

    decimal multiplier = (decimal)Math.Pow(10, decimals);
    decimal number = d * multiplier;

    if (decimal.Truncate(number) < number)
    {
        number += 0.5m;
    }
    return decimal.Round(number) / multiplier;
}
Run Code Online (Sandbox Code Playgroud)

有谁知道这个框架设计决策背后的原因?

是否有任何内置的圆形半算法实现到框架中?或者可能是一些非托管Windows API?

对于初学者而言,这可能会产生误导,因为他们只是写了一个decimal.Round(2.5m, 0)期望3但结果是2.

.net rounding

264
推荐指数
4
解决办法
5万
查看次数

如何将输入读作数字?

在下面的代码中为什么xy字符串而不是整数?网上的所有内容都说要使用raw_input(),但是我读input()raw_input()在Python 3.x中重命名的Stack Overflow(在一个不处理整数输入的线程上).

play = True

while play:

    x = input("Enter a number: ")
    y = input("Enter a number: ")

    print(x + y)
    print(x - y)
    print(x * y)
    print(x / y)
    print(x % y)

    if input("Play again? ") == "no":
        play = False
Run Code Online (Sandbox Code Playgroud)

python int input python-2.7 python-3.x

261
推荐指数
7
解决办法
76万
查看次数

为什么浮点数不准确?

为什么有些数字在存储为浮点数时会失去准确性?

例如,十进制数9.2可以精确地表示为两个十进制整数(92/10)的比率,两者都可以用二进制(0b1011100/0b1010)精确表示.但是,存储为浮点数的相同比率永远不会完全等于9.2:

32-bit "single precision" float: 9.19999980926513671875
64-bit "double precision" float: 9.199999999999999289457264239899814128875732421875
Run Code Online (Sandbox Code Playgroud)

这样一个看似简单的数字如何在64位内存中表达"太大" ?

language-agnostic floating-point precision

181
推荐指数
4
解决办法
3万
查看次数

检查字符串是否可以在Python中转换为float

我有一些Python代码通过一个字符串列表运行,如果可能的话将它们转换为整数或浮点数.对整数执行此操作非常简单

if element.isdigit():
  newelement = int(element)
Run Code Online (Sandbox Code Playgroud)

浮点数更难.现在我正在使用partition('.')拆分字符串并检查以确保一侧或两侧是数字.

partition = element.partition('.')
if (partition[0].isdigit() and partition[1] == '.' and partition[2].isdigit()) 
    or (partition[0] == '' and partition[1] == '.' and partition[2].isdigit()) 
    or (partition[0].isdigit() and partition[1] == '.' and partition[2] == ''):
  newelement = float(element)
Run Code Online (Sandbox Code Playgroud)

这是有效的,但显然if语句有点像熊.我考虑的另一个解决方案是将转换包装在try/catch块中,看看它是否成功,如本问题所述.

有没有其他想法?关于分区和try/catch方法的相对优点的意见?

python string type-conversion

161
推荐指数
7
解决办法
22万
查看次数

Python 3.x舍入行为

我刚刚重新阅读Python 3.0中的新功能,它指出:

round()函数舍入策略和返回类型已更改.确切的中途情况现在四舍五入到最接近的偶数结果而不是零.(例如,round(2.5)现在返回2而不是3.)

圆形文件:

对于支持round()的内置类型,值被舍入到10的最接近的倍数到幂减去n; 如果两个倍数相等,则向均匀选择进行舍入

所以,在v2.7.3下:

In [85]: round(2.5)
Out[85]: 3.0

In [86]: round(3.5)
Out[86]: 4.0
Run Code Online (Sandbox Code Playgroud)

正如我所料.但是,现在在v3.2.3下:

In [32]: round(2.5)
Out[32]: 2

In [33]: round(3.5)
Out[33]: 4
Run Code Online (Sandbox Code Playgroud)

这似乎是违反直觉的,与我对四舍五入的理解相反(并且必然会绊倒人).英语不是我的母语,但在我读到这篇文章之前,我以为我知道舍入的含义是什么: - /我确信在引入v3的时候一定有一些关于这个的讨论,但是我无法找到一个很好的理由我的搜索.

  1. 有没有人能够深入了解为什么会改变这种情况?
  2. 有没有其他主流编程语言(例如,C,C++,Java,Perl, ..)这样做(对我不一致)舍入?

我在这里错过了什么?

更新:@ Li-aungYip的评论"银行家的舍入"给了我正确的搜索词/搜索关键字,我发现了这个问题:为什么.NET使用银行家的舍入作为默认值?所以我会仔细阅读.

python rounding python-3.x

157
推荐指数
5
解决办法
5万
查看次数

将float转换为字符串而不对其进行舍入

我正在创建一个程序,由于不需要解释的原因,需要将float转换为字符串以使用len()进行计数.但是,str(float(x))导致x在转换为字符串时被舍入,这会抛出整个事物.有谁知道它的修复?如果你想知道,这是使用的代码:

len(str(float(x)/3))
Run Code Online (Sandbox Code Playgroud)

python string floating-point rounding

83
推荐指数
2
解决办法
42万
查看次数