小编iva*_*eev的帖子

如何正确解释数字(十六进制,八进制,十进制)

我正在尝试编写一个输入 - 十六进制,八进制和小数 - 的程序,将它们存储在整数变量中,并将它们与它们转换为十进制形式一起输出.例如:

用户输入:0x43,0123,65

方案产出:

0x43 hexadecimal converts to 67 decimal
0123 octal converts to 83 decimal
65 decimal converts to 65 decimal
Run Code Online (Sandbox Code Playgroud)

显然我需要一种解释数字的方法,但我不知道如何去做.我已经尝试了各种方法,例如将它们读入函数并将它们转换为字符串,反之亦然(请参阅此处查看代码示例),但解释数字始终需要转换为某种格式来破坏原始输入.

我唯一能想到的是重载一个>>运算符,它一次读取一个字符,如果它在输入的开头看到0x或0,那么它在将整个输入读入int之前将其存储到一个字符串中.然后程序将以某种方式在输出期间确定正确的操纵器.

不确定是否有更简单的方法,任何帮助表示赞赏.

编辑:这已经解决,但我决定发布代码,如果有人有兴趣.

#include "std_lib_facilities.h"

void number_sys(string num, string& s)
{
  if(num[0] == '0' && (num[1] != 'x' && num[1] != 'X')) s = "octal";
  else if(num[0] == '0' && (num[1] == 'x' || num[1] == 'X')) s = "hexadecimal";
  else s = "decimal";
}

int main()
{
    cout << "Input numbers …
Run Code Online (Sandbox Code Playgroud)

c++ numbers string-parsing

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

选择满足条件的元素

我想从(非常长)列表中选择满足条件的特定元素.在我的特定情况下,列表中的每个项目都是一个类,我想要的条件是,例如,item.id == 1.

我开始了

[item for item in collection if item.id == 1]
Run Code Online (Sandbox Code Playgroud)

但我不想遍历整个列表,因为我确信只有一个元素满足条件.

另一种选择是

def check(collection):
    for item in collection:
        if item.id == 1:
            return item
Run Code Online (Sandbox Code Playgroud)

有更有效的方法吗?Python 3是否具有内置功能?另一种选择可以是预处理列表以获得字典,例如

{item.id : item for item in collection}
Run Code Online (Sandbox Code Playgroud)

python performance list python-3.x

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

循环变量(i)在Visual Studio中调试时在每个循环后神秘地重置为0(在不调试时工作)

我试图从C#中的进程中读取一些内存.这是我的辅助函数,用于从一系列偏移量中获取指针地址,以及相关的其他函数:

    [DllImport("kernel32.dll", CallingConvention = CallingConvention.StdCall, CharSet = CharSet.Auto, SetLastError = true)]
    public static extern Int32 ReadProcessMemory(
        IntPtr hProcess,
        IntPtr lpBaseAddress,
        [In, Out] byte[] buffer,
        UInt32 size,
        out int lpNumberOfBytesRead);

    public static bool ReadProcessMemoryHelper(
        IntPtr hProcess,
        long lpBaseAddress,
        [In, Out] byte[] buffer,
        UInt32 size,
        out int lpNumberOfBytesRead)
    {
        return ReadProcessMemory(
            hProcess,
            new IntPtr(lpBaseAddress),
            buffer,
            size,
            out lpNumberOfBytesRead) != 0;
    }
    public long Pointer(params int[] Offsets)
    {
        long pointerAddress = _baseAddr;

        if (Offsets.Length > 1)
        {
            byte[] buff = new byte[4];
            for …
Run Code Online (Sandbox Code Playgroud)

c#

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

定位一个用CSS指定的类

我有一个div元素有3个类:

<div class='captcha_article captcha_email captcha_register'></div>
Run Code Online (Sandbox Code Playgroud)

例如,如何在不影响div中其他两个类的样式的情况下定位第三个类?

另外,如果我有4个课程,如何在不使用last-child属性的情况下定位最后一个课程?将:nth-child适用于这里?

css

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

如何在 Python 中初始化和索引字典列表?

目前我有一些看起来像这样的东西:

   if width < 101:
      column_placement_0[index] = rectangles
   elif width < 201:
      column_placement_1[index] = rectangles
   elif width < 301:
       column_placement_2[index] = rectangles
Run Code Online (Sandbox Code Playgroud)

... 等等。

相反,我希望能够只初始化一个存储字典的列数组。

首先,我觉得我会正常初始化一个数组......

columns = []
Run Code Online (Sandbox Code Playgroud)

但后来我不知道如何引用单个列表和字典索引可能类似于 Java 中的 2D 数组?

columns[index][dict_key] = value
Run Code Online (Sandbox Code Playgroud)

我该怎么办?

python dictionary list

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

抓住任何东西并将其保存到变量中

我想知道python中是否有"all"的关键字except.我遇到了这个看似简单的问题:

try:
    #do stuff
except any as error:
    print('error: {err}'.format(err=error))
Run Code Online (Sandbox Code Playgroud)

我知道您可以except:捕获所有错误,但我不知道如何添加as关键字来获取一个有print能力的对象.我想捕获任何错误,并能够获得一个用于打印或其他东西的对象.

python except

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

释放动态数组char时崩溃

当我尝试在dequeue()函数中为Student的name字段释放char数组时,程序崩溃了.内存先前已在createStudent()函数中分配.

我真的看不出我想念的东西.

#include "iostream"
#include "stdio.h"
using namespace std;

struct Student
{
    int id;
    char* name;
};

struct QueueNode
{
    Student* info;
    QueueNode* next;
};

Student* createStudent(int id, char* name)
{
    Student* s = (Student*)malloc(sizeof(Student));
    s->id = id;
    s->name = (char*)malloc(sizeof(name) + 1);
    strcpy(s->name, name);

    return s;
}

QueueNode* createQueueNode(Student *s)
{
    QueueNode *queue = (QueueNode*)malloc(sizeof(QueueNode));
    queue->info = s;
    queue->next = nullptr;

    return queue;
}

void enqueueNode(QueueNode* &root, QueueNode* node)
{
    if (root == nullptr)
        root = node;
    else
    { …
Run Code Online (Sandbox Code Playgroud)

c++

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

input() 总是产生“无”

每当我运行我创建的评分程序时,它都能正常工作,但文本“无”一直显示,我不知道为什么。这是代码:

Grade_in=input(print("Enter Your Grade (Only Upper Case):"))
if (Grade_in=='A+') :
    print ("Numeric Grade is 4")
elif (Grade_in=='A'):
    print("Numeric Grade is 4")
elif (Grade_in=='A-'):
    print("Numeric Grade is 4.3")
elif (Grade_in=='B+'):
    print ("Numeric Grade is 3.3")
elif (Grade_in=='B'):
    print ("Numeric Grade is 3")
elif (Grade_in=='B-'):
    print ("Numeric Grade is 2.7")
elif (Grade_in=='C+'):
    print ("Numeric Grade is 2.3")
elif (Grade_in=='C'):
    print ("Numeric Grade is 2")
elif (Grade_in=='C-'):
    print ("Numeric Grade is 1.7")
elif (Grade_in=='D+'):
    print ("Numeric Grade is 1.3")
elif (Grade_in=='D'):
    print ("Numeric …
Run Code Online (Sandbox Code Playgroud)

python python-3.x

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

记录注册用户的操作

登录时我只需要记录

if user_authenticated():
    log.info(msg)
else:
    pass
Run Code Online (Sandbox Code Playgroud)

所以想知道我是否应该这样做,如果那么逻辑每次或做一个功能,这是首选的方式来做到这一点,为什么?

python logging

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

从 mgltools 运行 PMV 时出现“导入错误:没有名为 oldnumeric 的模块”

我使用以下命令安装了一个名为 mgltools 的工具

conda install mgltools
Run Code Online (Sandbox Code Playgroud)

当我尝试使用命令测试安装时,pmv出现以下错误

setting PYTHONHOME environment
Run PMV from  /home/satyajeet/miniconda2/MGLToolsPckgs/Pmv
Traceback (most recent call last):
  File "/home/satyajeet/miniconda2/MGLToolsPckgs/Pmv/__init__.py", line 369, in runPmv
    from mglutil.splashregister.splashscreen import SplashScreen
  File "/home/satyajeet/miniconda2/MGLToolsPckgs/mglutil/splashregister/splashscreen.py", line 7, in <module>
    from mglutil.util.misc import ensureFontCase
  File "/home/satyajeet/miniconda2/MGLToolsPckgs/mglutil/util/misc.py", line 19, in <module>
    import numpy.oldnumeric as Numeric
ImportError: No module named oldnumeric
hit enter to continue
Run Code Online (Sandbox Code Playgroud)

从网上论坛,我发现问题出在numpy版本上。之后,支持oldnumeric被撤回numpy 1.9,我开始跑步numpy 1.15。所以我将 numpy 降级为numpy 1.8.1使用以下命令

python -m pip install numpy==1.8.1
Run Code Online (Sandbox Code Playgroud)

但现在我收到一个新错误 …

python numpy conda

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