小编Rya*_*ing的帖子

将字符串转换为Float或Fixnum

给定来自用户输入的字符串,我想将其转换为Fixnum或者Integer如果字符串是有效的int.如果字符串是float,我不想转换为int.如果失败,我想尝试将字符串转换为a Float.如果字符串不是其中任何一个,我打算只引发异常.

似乎String#to_i只是截断任何Float值而不是提供任何类型的错误.我知道我可以做一些regexing以确定a是否String是一个有效的int,但似乎应该有一些内置的转换失败,如果String有任何其他数字.我错过了什么吗?

例如.我希望这样的事情失败而不是回归1

irb(main):092:0> "1.4".to_i
=> 1
irb(main):093:0> "1.4e5".to_i
=> 1
Run Code Online (Sandbox Code Playgroud)

ruby

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

如何每次随机获得0或1?

显示0和1的矩阵

编写一个使用以下标题显示n-by-n矩阵的函数:

def printMatrix(n):
Run Code Online (Sandbox Code Playgroud)

每个元素是01,是随机生成的.写提示用户输入n,并显示一个测试程序n-by- n 矩阵.这是一个示例运行:

Enter n: 3 
010 
000 
111
Run Code Online (Sandbox Code Playgroud)

这是我的想法:

from __future__ import print_function

from random import randint, choice

import random

def printMatrix (n):
    n = 1
    matrix = (
    [str(randint(0, 1)) for _ in range(0, n)] for _ in range(0, n)
       )
    for row in matrix:
       print(" ".join(row))


def main():
   n = int(input ("Enter an interger number:"))

main()
Run Code Online (Sandbox Code Playgroud)

python random

0
推荐指数
2
解决办法
9757
查看次数

forward iterator iterator_traits :: reference的要求

我正在试图弄清楚对forward_iterators reference类型的要求是什么.在明显的情况下,你将拥有value_type = T;reference = T&;.我看到了读取前向迭代器需求的cppreference页面

Expression  Return      Equivalent expression
*i++        reference   value_type& temp=*i; ++i; return temp;
Run Code Online (Sandbox Code Playgroud)

std::vector<bool> 表明"等效表达式"并不总是有效,因为它返回一个代理对象:

std::vector<bool> v(10);
auto i = v.begin();
std::vector<bool>::iterator::value_type& temp = *i; // error
// can't bind bool& to std::_Bit_reference
Run Code Online (Sandbox Code Playgroud)

我看到的标准中没有提到等效表达式.代理对象允许分配,这可能是一致性的关键.

除了试图确定要求之外,我的具体问题涉及知道是否具有value_type== reference既不是引用也不支持赋值,也适用于标准库.

将一些Container<int>带有iterator标记为forward_iterator_tagreference == int有效吗?

c++ iterator

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

数字的大小

问题:确定用户输入的pos,neg和0的数量.

c中的代码:

#include <stdio.h>

void main() {
    int pos, neg, zero = 0 ;
    char x[7] ; 
    int num = 0 ;
    printf("\nPress Q to quit anytime");
    while( printf("\n") , gets(x)) {
        num = atoi(x) ;
        if( !strcmp(x , "Q")) break ;
        if( num > 0) pos++ ;
        else if (num < 0) neg++ ;
        else zero++ ;
    }
    printf("\nPos nos: %d \tNeg nos: %d \tZeros: %d", pos, neg, zero);
}
Run Code Online (Sandbox Code Playgroud)

在这里,虽然正数和负数被正确计算,但积极却不是.它总是显示正数,偏移量为4196240,即如果有4个正数,则显示4196244.

关于4196240怎么这么特别?为什么会显示这个?

c

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

理解C++中对const迭代器的const引用和非const引用.为什么我不能在print函数中使用非const引用到迭代器?

有人可以向我解释C++中const iterator引用和non-const iterator引用之间的区别吗?为什么我不能non-const iteratorprint函数中使用引用?


以下代码无法编译.

#include <deque>
#include <iostream>

using namespace std;

template<typename T> ostream & print(T & start, T & end) {
    for (; start != end; ++start) {
        cout << *start << " ";
    }
    return cout;
}

int main() {
    int tab[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
    deque<int> d1(tab, tab + 10);
    deque<int> d2;
    deque<int>::iterator it;
    for (it = d1.begin(); it != d1.end(); …
Run Code Online (Sandbox Code Playgroud)

c++ iterator const

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

在引用析构函数时,标准中"调用"的含义是什么?

调用是否意味着已经调用并完成/返回析构函数,或者只是调用了它?我想到了后者,直到我在12.4 Destructors部分看到这句话(多个草稿都有这个):

一旦为对象调用析构函数,该对象就不再存在

如果调用意味着调用已经开始,则意味着this在析构函数体中无效.

如果调用意味着调用并完成,则意味着对象在其析构函数运行时仍然" 存在 "并且可以从另一个线程访问(这是我首先看到的标准).其他答案声称情况并非如此,但不要与消息来源支持,所以我倾向于认为他们错了.

c++ destructor language-lawyer

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

使用 Heredoc 在 bash 脚本 sudo 中设置变量

我正在尝试运行一个切换用户的脚本(遵循此答案)。我无法在其中设置变量。我尝试了很多事情,但最基本的是:

sudo -u other_user bash << EOF
V=test
echo "${V}"
EOF
Run Code Online (Sandbox Code Playgroud)

更现实的是,我正在做类似以下的事情:

sudo -u other_user bash << EOF
cd
V=$(ls)
echo "${V}"
EOF
Run Code Online (Sandbox Code Playgroud)

每次我尝试使用该变量时,V它都会被取消设置。如何设置变量?

bash sudo su

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

manage.py runserver后如何自动执行代码

我需要在运行服务器后立即读取 csv 文件。它不能在任何视图中完成,因为它需要预加载以执行所有视图,所以我需要在“manage.py runserver”之后立即执行。是否有任何文件可以编写我需要首先执行的代码?

python django python-3.x

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

为什么这段代码不执行?

找不到语法错误或编译错误.为什么这个程序不执行?如果没有编译错误,我无法理解为什么这个程序没有运行.在下面的代码中,逻辑上可能出现什么问题?我可以在此代码中添加哪些内容以使其运行和交互?

def main():
    print "Checking platform...\r\r\r"
    platform = systemdetails()

def systemdetails():
    print "Hello! Welcome to the auto-commander"
    print "Please enter the platform specific number to automate."
    platforminput = integer(input ("1. Cisco       2. Linux/Unix     3. Juniper       4. VMware vSphere/NSX \n:"))
    if platforminput ==1:
        platform='cisco_ios'
    elif platforminput ==2:
        platform='linux'
    elif platforminput ==3:
        platform='juniper'
    elif platforminput ==4:
        platform='vmware'
    else:
        print "Commander has to repeat the question...\n\n"
        systemdetails()
    return platform
Run Code Online (Sandbox Code Playgroud)

python python-2.7

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

使用STL在静态数组中交换两个元素

假设我有一个数组,int array[3] = {1,2,3};我想交换第一个和最后一个元素,以便我有array = {3,2,1};如何使用STL执行此操作?

c++ arrays stl

-4
推荐指数
1
解决办法
3306
查看次数

标签 统计

c++ ×4

python ×3

iterator ×2

arrays ×1

bash ×1

c ×1

const ×1

destructor ×1

django ×1

language-lawyer ×1

python-2.7 ×1

python-3.x ×1

random ×1

ruby ×1

stl ×1

su ×1

sudo ×1