小编Sha*_*ger的帖子

2149
推荐指数
17
解决办法
65万
查看次数

将浮点数限制为两个小数点

我希望a四舍五入到13.95.

>>> a
13.949999999999999
>>> round(a, 2)
13.949999999999999
Run Code Online (Sandbox Code Playgroud)

round功能不像我预期的那样工作.

python floating-point precision rounding

1527
推荐指数
28
解决办法
287万
查看次数

暂时更改bash中的当前工作目录以运行命令

我知道我可以使用cd命令在bash中更改我的工作目录.

但是,如果我执行此命令:

cd SOME_PATH && run_some_command
Run Code Online (Sandbox Code Playgroud)

然后工作目录将永久更改.有没有办法像这样暂时更改工作目录?

PWD=SOME_PATH run_some_command
Run Code Online (Sandbox Code Playgroud)

bash shell terminal working-directory

156
推荐指数
3
解决办法
10万
查看次数

pip throws TypeError:parse()在尝试安装新包时得到了一个意外的关键字参数'transport_encoding'

我使用的是最新版本的Anaconda3.我刚安装它,我正在尝试下载一些软件包.我正在使用Anaconda Prompt.在尝试使用pip执行任何操作(包括升级现有包)时,我得到以下回溯.

    Exception:
Traceback (most recent call last):
  File "C:\Users\csprock\Anaconda3\lib\site-packages\pip\basecommand.py", line 215, in main
    status = self.run(options, args)
  File "C:\Users\csprock\Anaconda3\lib\site-packages\pip\commands\install.py", line 335, in run
    wb.build(autobuilding=True)
  File "C:\Users\csprock\Anaconda3\lib\site-packages\pip\wheel.py", line 749, in build
    self.requirement_set.prepare_files(self.finder)
  File "C:\Users\csprock\Anaconda3\lib\site-packages\pip\req\req_set.py", line 380, in prepare_files
    ignore_dependencies=self.ignore_dependencies))
  File "C:\Users\csprock\Anaconda3\lib\site-packages\pip\req\req_set.py", line 487, in _prepare_file
    req_to_install, finder)
  File "C:\Users\csprock\Anaconda3\lib\site-packages\pip\req\req_set.py", line 428, in _check_skip_installed
    req_to_install, upgrade_allowed)
  File "C:\Users\csprock\Anaconda3\lib\site-packages\pip\index.py", line 465, in find_requirement
    all_candidates = self.find_all_candidates(req.name)
  File "C:\Users\csprock\Anaconda3\lib\site-packages\pip\index.py", line 423, in find_all_candidates
    for page in self._get_pages(url_locations, project_name):
  File "C:\Users\csprock\Anaconda3\lib\site-packages\pip\index.py", line 568, in …
Run Code Online (Sandbox Code Playgroud)

python pip python-3.x anaconda

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

结构声明结束时这[1]的目的是什么?

我正在窥探我的MSP430微控制器的头文件,我遇到了这个<setjmp.h>:

/* r3 does not have to be saved */
typedef struct
{
    uint32_t __j_pc; /* return address */
    uint32_t __j_sp; /* r1 stack pointer */
    uint32_t __j_sr; /* r2 status register */
    uint32_t __j_r4;
    uint32_t __j_r5;
    uint32_t __j_r6;
    uint32_t __j_r7;
    uint32_t __j_r8;
    uint32_t __j_r9;
    uint32_t __j_r10;
    uint32_t __j_r11;
} jmp_buf[1]; /* size = 20 bytes */
Run Code Online (Sandbox Code Playgroud)

我知道它声明了一个匿名结构和typedef它jmp_buf,但我无法弄清楚它是什么[1].我知道它声明jmp_buf是一个有一个成员(这个匿名结构)的数组,但我无法想象它用于什么.有任何想法吗?

c struct typedef reverse-engineering declaration

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

在Python中处理字符串中的转义序列

有时当我从文件或用户那里获得输入时,我会得到一个包含转义序列的字符串.我想以与Python处理字符串文字中的转义序列相同的方式处理转义序列.

例如,假设myString定义为:

>>> myString = "spam\\neggs"
>>> print(myString)
spam\neggs
Run Code Online (Sandbox Code Playgroud)

我想要一个函数(我会称之为process)这样做:

>>> print(process(myString))
spam
eggs
Run Code Online (Sandbox Code Playgroud)

重要的是该函数可以处理Python中的所有转义序列(在上面链接的表中列出).

Python有功能吗?

python string escaping

93
推荐指数
4
解决办法
8万
查看次数

Python - IndexError:使用py2exe时元组索引超出范围

我目前正在尝试使用py2exe创建可执行文件.我使用Python 3.6.我正在使用的脚本导入openpyxl和pptx,当我使用Pycharm或使用命令窗口运行脚本时运行正常.输出产生错误:

IndexError:元组索引超出范围

您可以在下面找到cmd输出:

C:\Python36>python setup.py py2exe
running py2exe
Traceback (most recent call last):
  File "setup.py", line 4, in <module>
    setup(console=['Storybookmaker.py'])
  File "C:\Python36\lib\distutils\core.py", line 148, in setup
    dist.run_commands()
  File "C:\Python36\lib\distutils\dist.py", line 955, in run_commands
    self.run_command(cmd)
  File "C:\Python36\lib\distutils\dist.py", line 974, in run_command
    cmd_obj.run()
  File "C:\Python36\lib\site-packages\py2exe\distutils_buildexe.py", line 188, in run
    self._run()
  File "C:\Python36\lib\site-packages\py2exe\distutils_buildexe.py", line 267, in _run
    builder.analyze()
  File "C:\Python36\lib\site-packages\py2exe\runtime.py", line 160, in analyze
    self.mf.import_hook(modname)
  File "C:\Python36\lib\site-packages\py2exe\mf3.py", line 120, in import_hook
    module = self._gcd_import(name)
  File "C:\Python36\lib\site-packages\py2exe\mf3.py", line 274, in _gcd_import
    return self._find_and_load(name) …
Run Code Online (Sandbox Code Playgroud)

python py2exe

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

函数返回多个值是pythonic吗?

在python中,您可以让函数返回多个值.这是一个人为的例子:

def divide(x, y):
    quotient = x/y
    remainder = x % y
    return quotient, remainder  

(q, r) = divide(22, 7)
Run Code Online (Sandbox Code Playgroud)

这似乎非常有用,但看起来它也可能被滥用("嗯......功能X已经计算出我们需要的中间值.让我们让X返回那个值").

你什么时候画线并定义一个不同的方法?

python function return-value multiple-return-values

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

装饰Python类方法 - 如何将实例传递给装饰器?

这是Python 2.5,它也是GAE,并不重要.

我有以下代码.我正在使用dec_check类作为装饰器在bar中装饰foo()方法.

class dec_check(object):

  def __init__(self, f):
    self.func = f

  def __call__(self):
    print 'In dec_check.__init__()'
    self.func()

class bar(object):

  @dec_check
  def foo(self):
    print 'In bar.foo()'

b = bar()
b.foo()
Run Code Online (Sandbox Code Playgroud)

执行此操作时,我希望看到:

In dec_check.__init__()
In bar.foo()
Run Code Online (Sandbox Code Playgroud)

但我得到" TypeError: foo() takes exactly 1 argument (0 given)"作为.foo()一种对象方法,以自我为参数.我猜测问题是bar当我执行装饰器代码时,实例并不存在.

那么如何将一个实例传递bar给装饰器类呢?

python python-decorators

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

从Python中的单元素列表中仅获取元素?

当已知Python列表始终包含单个项目时,是否可以访问它而不是:

mylist[0]
Run Code Online (Sandbox Code Playgroud)

你可能会问,'你为什么要这样?'.仅好奇心.似乎有另一种方法可以在Python中完成所有工作.

python list python-2.7 python-3.x iterable-unpacking

57
推荐指数
2
解决办法
4万
查看次数