小编Ken*_*nta的帖子

在列表中旋转值[Python]

我知道之前已经问过这个问题,但是我没有看到任何以不拆分列表的方式回答它.

说我有一个清单:

num = [1,2,3,4,5,6]
Run Code Online (Sandbox Code Playgroud)

我想创建一个函数:

rotate(lst, x):
Run Code Online (Sandbox Code Playgroud)

因此,如果我调用rotate(num, 3)它将全局编辑列表num.那种方式,当我后来打电话print(num)给它将导致[4,5,6,1,2,3].

我明白我可以编写类似的功能:

rotate(lst, x):
    return [lst[-x:] + lst[:-x]
Run Code Online (Sandbox Code Playgroud)

但是我需要在没有return语句的情况下执行此函数,并且不需要拆分列表.我正在考虑的工作是将列表的最后一个值放入变量中:q = lst[-1]然后从那里创建一个循环,该循环运行x一定次数,继续将值移向列表末尾并替换第0个位置与存储在q中的任何内容.

还有一件事.如果我打电话rotate(lst, -3)而不是旋转到"右",它将必须旋转到"左".

我是python的新手,并且无法理解这个操作列表的概念.谢谢大家的时间和精力.我希望这个问题足够清楚.

python rotation

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

while循环使用嵌套的if语句--C

我正在尝试一个项目来编程iRobot.对于这个项目,我有一个部分,我需要这个机器人直行,除非按下碰撞传感器.当按下不同的碰撞传感器时,应该发生不同的事情,然后它应该继续直线移动.这是我到目前为止的代码:

while( ReadBumpSensors() == 0) 
{
    drive(200, RAD_STRAIGHT);

    if ( ReadBumpSensors() == 1 )
        {
        drive(-200, RAD_STRAIGHT);
        delayMs(1000);
        drive(200, 1);
        delayMs(500);
        drive(200, RAD_STRAIGHT);
        }
    if ( ReadBumpSensors() == 2)
        {
        drive(-200, RAD_STRAIGHT);
        delayMs(1000);
        drive(200,-1);
        delayMs(500);
        drive(200, RAD_STRAIGHT);
        }
    if ( ReadBumpSensors() == 3)
        {
        drive(-200, RAD_STRAIGHT);
        delayMs(1000);
        drive(200,-1);
        delayMs(500);
        drive(200, RAD_STRAIGHT);
        }
    }
Run Code Online (Sandbox Code Playgroud)

我没有得到任何错误,但机器人只是直接移动而没有响应任何if语句.我觉得这是某种类型的语法错误,但我不确定.有什么建议?

c syntax robot

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

C++ - 用cin运行while循环后,程序不会再次输入

我正在运行一个while循环,它将使用用户输入的浮点数并将它们添加到一起,直到在输入中放入其他内容.

while(cin >> input)
{
    price += input;
    cout << "Next price: ";
}
Run Code Online (Sandbox Code Playgroud)

在此之后,我有用户输入他们支付了多少:

cout << "Enter the amount paid: ";
cin >> paid;
cout << "You paid: " << paid << endl;
Run Code Online (Sandbox Code Playgroud)

在运行程序时,循环执行正常,我可以cout正确地得到总价格,但它会跳过该cin >> paid;行并输出为You paid: nan.

我尝试cin.clear()在循环和下一个输入之间放置,但是在运行它时,输出是:You paid: 0

我是否需要更改while循环或使用其他版本来清除输入?我是C++的新手.谢谢!

c++ loops cin clear while-loop

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

标签 统计

c ×1

c++ ×1

cin ×1

clear ×1

loops ×1

python ×1

robot ×1

rotation ×1

syntax ×1

while-loop ×1