小编Pae*_*els的帖子

Python函数返回循环

好的,所以这段代码来自我学校的练习题.我们要在心理上解析代码并检查答案.

当我第一次解析它时,我得到了4.我复制了代码并通过IDLE运行它得到8.我运行调试器并看到else:return循环if else语句x == 0,然后返回1.

我不明白返回1是如何出现在8.

def foo(x=5):
    if x == 0:
        return 1
    else:
        return 2*foo(x-1)

print(foo(3))
Run Code Online (Sandbox Code Playgroud)

据我所知,它正在调用foo(x-1)函数内部,foo(x=5)这使得它一次又一次地检查是否会再次x == 0返回1.返回1如何最终打印8?

python recursion

10
推荐指数
2
解决办法
858
查看次数

如何修复这种非递归奇偶合并排序算法?

我正在寻找非递归奇偶合并排序算法,并找到了两个来源:

两种算法都相同但是错误.生成的排序网络不是奇偶合并排序网络.

以下是具有32个输入的结果网络的图像.2条水平线之间的垂直线表示将值a [x]与[y]进行比较,如果大于,则交换数组中的值.

32个输入的奇偶合并排序http://flylib.com/books/3/55/1/html/2/images/11fig07.gif(可点击)

我将代码从Java复制到C并用excha 替换了函数printf来打印交换候选者.

当绘制对的图时,可以看出生成了太多对.

有谁知道如何修复此算法?

为什么我需要非递归版本?
我想将这个排序网络转换为硬件.将流水线阶段插入非递归算法很容易.

我还调查了递归版本,但是将算法转换为流水线硬件太复杂了.

我的C代码:

#include <stdlib.h>
#include <stdio.h>

void sort(int l, int r)
{ int n = r-l+1;

  for (int p=1; p<n; p+=p)
    for (int k=p; k>0; k/=2)
      for (int j=k%p; j+k<n; j+=(k+k))
        for (int i=0; i<n-j-k; i++)
          if ((j+i)/(p+p) == (j+i+k)/(p+p))
              printf("%2i cmp %2i\n", l+j+i, l+j+i+k);
}
int main(char* argv, int args)
{ const int COUNT = 8; …
Run Code Online (Sandbox Code Playgroud)

c sorting mergesort hdl sorting-network

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

如何在Sphinx运行时预处理源文件?

我为我的项目设置了Sphinx文档,并希望提取源文件的doc字符串并将它们嵌入到最终文档中.不幸的是,Sphinx不支持源文件的语言(VHDL).VHDL似乎没有Sphinx域.

所以我的想法如下:

  • 在Sphinx之前进入Sphinx运行并执行一些Python代码
  • Python代码从每个源文件(最顶层的多行注释块)中提取文本块,并为每个源文件组装一个reST文件,包括此注释块和一些其他reST标记.
  • 所有源文件都列在a中index.rst,以生成适当的.. toctree::指令.
  • 每个源代码目录递归地完成文本提取和转换.

所以主要的问题是:如何挂钩到Spinx?

或者我应该导入并运行我自己的配置conf.py

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
#
from my_preprocessor import my_proc
proc = my_proc()
proc.run()
#
# Test documentation build configuration file, created by
# sphinx-quickstart on Tue May 24 11:28:20 2016.
# ....
Run Code Online (Sandbox Code Playgroud)

我无法修改构建过程文件:Makefile并且make.bat,因为真正的构建过程在ReadTheDocs.org上运行.RTD仅执行conf.py.

python vhdl python-3.x python-sphinx read-the-docs

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

Svg getComputedTextLength函数总是返回零

你好我试着整合这个d3 zoomable treemap

http://mbostock.github.io/d3/talk/20111018/treemap.html

但是getComputedTextLength()总是返回0.我也尝试了getBBox(),但它返回一个所有属性为零的对象.

    .text(function(d) { return d.name; })
    .style("opacity", function(d) {
         d.w = this.getComputedTextLength(); 
         return d.dx > d.w ? 1 : 0;
    });
Run Code Online (Sandbox Code Playgroud)

我需要把我的文字包裹在一个tspan
还有什么其他原因可以产生这种

svg d3.js

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

是否可以在枚举中覆盖__new__以将字符串解析为实例?

我想将字符串解析为python枚举.通常会实现一个解析方法来执行此操作.几天前,我发现了__new__方法,该方法能够根据给定的参数返回不同的实例.

这是我的代码,它不起作用:

import enum
class Types(enum.Enum):
  Unknown = 0
  Source = 1
  NetList = 2

  def __new__(cls, value):
    if (value == "src"):  return Types.Source
#    elif (value == "nl"): return Types.NetList
#    else:                 raise Exception()

  def __str__(self):
    if (self == Types.Unknown):     return "??"
    elif (self == Types.Source):    return "src"
    elif (self == Types.NetList):   return "nl"
Run Code Online (Sandbox Code Playgroud)

当我执行我的Python脚本时,我收到以下消息:

[...]
  class Types(enum.Enum):
File "C:\Program Files\Python\Python 3.4.0\lib\enum.py", line 154, in __new__
  enum_member._value_ = member_type(*args)
TypeError: object() takes no parameters
Run Code Online (Sandbox Code Playgroud)

如何返回枚举值的正确实例?

编辑1:

此枚举用于URI解析,特别是用于解析架构.所以我的URI看起来像这样 …

python enums python-3.4

8
推荐指数
3
解决办法
4574
查看次数

Android游标以RTL语言显示

我在RTL语言中有android输入游标的问题.当我在RTL支持布局时,我有两个输入光标,这真的很有趣.是否有真正的解决方案,摆脱这个?

我使用此代码来制作我的Android UI RTL:

getWindow().getDecorView().setLayoutDirection(View.LAYOUT_DIRECTION_RTL);
Run Code Online (Sandbox Code Playgroud)

这是我的文本视图xml:

<android.support.design.widget.TextInputLayout
        android:id="@+id/input_layout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
        <EditText
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:inputType="numberDecimal"
            android:id="@+id/myID"
            android:maxLines="1"
            android:focusableInTouchMode="true"
            android:layout_weight="0.25"
            android:layout_gravity="center_horizontal"
            android:hint="phone Number"
            android:maxLength="20"
            android:gravity="center" />
    </android.support.design.widget.TextInputLayout>
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

layout android cursor right-to-left

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

Python 3.5 - 使用 @overload 重载方法

Python 3.5+有一个重载包。使用这个包,可以重新定义方法,但是具有不同的类型提示,并且它的装饰器会找出应该调用哪个重载方法。

常见的编码模式:

class foo:
  def func(param):
    if instance(param, int):
      pass
    elif instance(param, str):
      pass
    elif instance(param, list):
      pass
    else:
      raise ValueError()
Run Code Online (Sandbox Code Playgroud)

使用@overload:

class foo:
  @overload
  def func(param: int):
    pass

  @overload
  def func(param: str):
    pass

  @overload
  def func(param: list):
    pass
Run Code Online (Sandbox Code Playgroud)

这是文档


我的问题是:

  • 与旧式参数类型切换相比,性能影响有多大?
  • 这个包如何访问类型提示?

python overloading python-3.5

8
推荐指数
2
解决办法
8979
查看次数

Vuetify RTL风格

我是vuetify的新手.我需要带有右上角标题的rtl v-text-field.怎么可能?我无法在检查员那里做到这一点.这就是我现在所拥有的:

在此输入图像描述

任何帮助,将不胜感激

textfield right-to-left vue.js vuetify.js

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

GitLab Pages,使用Sphinx生成的文档

我想在GitLab页面上托管用Sphinx生成的静态页面。内置index.html文件位于:

project/docs/build/html
Run Code Online (Sandbox Code Playgroud)

.gitlab-ci.yml部署页面的外观如何 ?我有类似的东西,它不起作用:

pages:
  stage: deploy
  script:
  - echo 'Nothing to do...'
 artifacts:
 paths:
 - docs/build/html
 only:
 - master
Run Code Online (Sandbox Code Playgroud)

python-sphinx gitlab gitlab-ci

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

RTL android:TextInputLayout 中的提示

我有这样的 XML 布局:

 <?xml version="1.0" encoding="utf-8"?>
    <androidx.constraintlayout.widget.ConstraintLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        android:layoutDirection="locale" 
        android:textDirection="rtl"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context=".app.storey.view.StoreyInsertFragment">

    <com.google.android.material.textfield.TextInputLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="somthing"
            app:layout_constraintEnd_toEndOf="parent"
            android:layout_marginEnd="8dp"
            android:layout_marginTop="8dp"
            app:layout_constraintStart_toStartOf="parent"
            android:layout_marginStart="8dp"
            app:layout_constraintHorizontal_bias="0.0" 
            app:layout_constraintTop_toTopOf="parent">

        <com.google.android.material.textfield.TextInputEditText
                android:layout_width="match_parent"
                android:layout_height="wrap_content"/>

    </com.google.android.material.textfield.TextInputLayout>

</androidx.constraintlayout.widget.ConstraintLayout>
Run Code Online (Sandbox Code Playgroud)

我希望hint文字显示在右侧,但使用后layoutDirectiontextAlignment仍然显示在左侧,我该怎么做?

我看到这个链接但没有解决我的问题。

android right-to-left textinputlayout

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