我将这个问题标记为 javascript,因为即使我目前是用 Python 编写的,如果用 Javascript 更容易实现,我也可以轻松地在 Javascript 中实现它。
我的任务是为化学系做一个有效数字计算检查器。这意味着学生将他们的数据输入到字段中,Web 应用程序将在他们的字段上执行预定义的操作并跟踪有效数字并查看他们的答案是否具有正确数量的有效数字。
当我将问题分解为我认为是一个很好的工作流程时,我意识到我需要一种方法用于 Python(后端,因为这是一个用 Django 制作的网络应用程序)或 Javascript(因为你总是可以在前端没问题)来确定有效位数。我做了一些研究并遇到了这个问题,它告诉我我需要使用 python 字符串而不是浮点数。我当前的 python 代码感觉几乎完整,但我仍然面临一个主要挑战
import re
def find_sigfigs(x):
# change the 'E' to lower case if the student typed it in as uppercase
x = x.lower()
if ('e' in x):
myStr = x.split('e')
# this function assumes that the number on the left of the 'e' is
# the number of sigfigs. That would be true for user input but not
# true …Run Code Online (Sandbox Code Playgroud) 注意:我的问题有几个部分.如果您愿意回答每个问题,我会很感激,而不是简单地告诉我该怎么做才能编译.:)
我对C#没有任何好处.事实上,我不太了解它的原因是我的课程专注于制作有效的算法,而不是真正教我们.NET.尽管如此,我们所有的程序都必须用.NET编写,直到现在才出现问题.我有以下代码,但它不会编译,我不明白为什么.我有一种直觉,认为这应该完全改写,但在我这样做之前,我想知道为什么不允许这样做.
结构的要点是创建一个类似结构的链表,这样我就可以在"列表"的末尾添加另一个节点,然后以相反的顺序遍历和调用节点
private struct BackPointer
{
public BackPointer previous;
public string a;
public string b;
public BackPointer(BackPointer p, string aa, string bb)
{
previous = p;
a = aa;
b = bb;
}
}
Run Code Online (Sandbox Code Playgroud)
然后在我的代码中我有一些效果
BackPointer pointer = new BackPointer();
pointer = new BackPointer(pointer, somestring_a, somestring_b);
Run Code Online (Sandbox Code Playgroud)
我得到的编译错误是 Struct member 'MyClass.BackPointer.previous' of type 'MyClass.BackPointer' causes a cycle in the struct layout
这似乎是一个明显的错误.它不喜欢我在同一结构的构造函数中传递结构的事实.但为什么不允许这样做?我想这个代码只会在列表中创建一个新节点并返回该节点,并返回前一个节点,但显然不会发生这种情况.那么实际会发生什么呢?最后解决这个问题的推荐方法是什么?我想只是告诉它不受管理只是手动处理我的指针,但我真的只知道如何在C++中做到这一点.我真的不知道C#会出现什么问题
在我的下面的代码中,我得到了这个编译器错误error C2236: unexpected 'class' 'Pawn'. Did you forget a ';'?但是你可以清楚地看到,我不会错过一个半冒号...是吗?我曾经认为这是一个问题,因为周期性的依赖性,但我删除了矢量旁边的任何包含.这个类也应该从我的Piece类继承,但即使删除后我仍然会收到错误.
#ifndef CHESS_PAWN_H
#define CHESS_PAWN_H
#include <vector>
class Pawn {
private:
bool _hasMoved;
public:
Pawn(int x, int y);
~Pawn();
std::vector<int> availMoves();
};
#endif
Run Code Online (Sandbox Code Playgroud)
我在这里做错了什么建议?