小编Mat*_*ipp的帖子

解析时Python意外的EOF

这是我的python代码.有人能告诉我它有什么问题.

while 1:
date=input("Example: March 21 | What is the date? ")
if date=="June 21":
    sd="23.5° North Latitude"
if date=="March 21" | date=="September 21":
    sd="0° Latitude"
if date=="December 21":
    sd="23.5° South Latitude"
if sd:
    print sd
Run Code Online (Sandbox Code Playgroud)

这是发生的事情:

>>> 
Example: March 21 | What is the date? 
Traceback (most recent call last):
  File "C:\Users\Daniel\Desktop\Solar Declination Calculater.py", line 2, in <module>
    date=input("Example: March 21 | What is the date? ")
  File "<string>", line 0

   ^
SyntaxError: unexpected EOF while parsing
>>> 
Run Code Online (Sandbox Code Playgroud)

python python-2.x eof

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

从C++调用Python或Lua来计算表达式,仅在需要时计算未知变量

我有一个像这样的表达式/公式

 std::string expr="((A>0) && (B>5 || C > 10))";
Run Code Online (Sandbox Code Playgroud)

我做了一些研究,似乎如果已知A,B,C值,通过在C++程序中嵌入Lua或Python,有些eval函数可以替代A,B和C并返回truefalse.

但是当我不知道所有的价值时会发生什么?让我们说A是已知的,它是-1.如果A为-1,则无论B或C的值如何,公式都将评估为"假".

我可以在不事先知道所有变量的情况下评估公式吗?例如,如果A为10,则查找B的值并再次重新评估是有意义的.我们如何解决这些问题?想法?

c++ python lua lazy-evaluation

19
推荐指数
4
解决办法
1048
查看次数

如果我不调用 super().__init__() ,自定义异常类的父级如何获取参数?

假设我创建了一个像这样的自定义异常类:

class MyError(Exception):
    def __init__(self, msg):
        pass

raise MyError('this is an error')

# Traceback (most recent call last):
#   File "<stdin>", line 1, in <module>
# __main__.MyError: this is an error
Run Code Online (Sandbox Code Playgroud)

MyError类不叫super().__init__(),所以我没有看到任何方式对父类,了解该错误消息('this is an error')。尽管如此,此代码仍能正常工作:错误消息确实存储在对象中的某处,并在我引发异常时打印出来。

如何以及为什么这样做?如果我__init__()在子类中重写并且不调用super().__init__(). 我试图找到 Exception 类的 Python 代码,但它看起来像是用 C 语言编写的,我不愿意深入研究并弄清楚它。

python python-3.x

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

当更改 Github 上的拉取请求的基础分支时,哪些提交将被删除?

协作者在 Github 存储库上创建了基于master分支的拉取请求。我想将其合并到我当前正在处理的下一个发布分支 ( 2.0.3) 而不是master分支。正如几个答案所指出的,我可以通过单击拉取请求标题旁边的“编辑”,然后更改基本分支来完成此操作。

但是,当我这样做时,我收到一条警告“旧基础分支的一些提交可能会从时间线中删除”。Github帮助页面还指出,“当您更改拉取请求的基本分支时,某些提交可能会从时间线中删除。”

谁能解释一下这个警告指的是哪个提交,以及它们何时可以被删除?这些提交是在master分支、拉取请求还是新的基础分支 ( 2.0.3) 中?“从时间线中删除”是指 Github 上拉取请求的讨论页面,还是意味着从存储库中删除提交?

更新

正如 @RomainValeri 指出的,此过程不会从存储库中添加或删除任何提交,它只是更改拉取请求中显示的提交,因为其中一些可能不再位于分支的基础和提示之间。然而,尖端仍将与以前相同的最终状态。

就我而言,拉取请求 ( feature) 在我的请求之后分支出来master,如下所示:

A---B---C---D <<< master
     \       \
      \       E---F <<< feature (pull request)
       \
        G---H <<< 2.0.3
Run Code Online (Sandbox Code Playgroud)

因此,当我将拉取请求的基础从 更改为 时master2.0.3它现在报告拉取请求包括提交 C、D、E 和 F,而不仅仅是 E 和 F。但是我不希望拉取请求中包含 C 和 D,所以我先合并master2.0.3. 这给出了这个:

A---B---C---D ---<<< master
     \       \    \
      \       \    E---F <<< …
Run Code Online (Sandbox Code Playgroud)

git github github-api pull-request

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

在python中加载之前如何知道CSV行数?

我是 python 新手,需要从各种 CSV 文件加载数据帧。事实证明,有一个业务逻辑取决于 csv 中的行数。如果我可以在不写 read_csv 的情况下知道 CSV 总行数,我可以事先知道吗?

python numpy pandas

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