标签: conditional-statements

Python条件变量设置

出于某种原因,我不记得如何做到这一点 - 我相信有一种方法可以在Python中设置变量,如果条件为真的话?我的意思是:

 value = 'Test' if 1 == 1
Run Code Online (Sandbox Code Playgroud)

如果条件(1 == 1)为真,它有望将设置为'Test'.有了这个,我打算测试多个条件来设置不同的变量,如下所示:

 value = ('test' if 1 == 1, 'testtwo' if 2 == 2)
Run Code Online (Sandbox Code Playgroud)

等等只是为了几个条件.这可能吗?

python variables if-statement conditional-statements

32
推荐指数
2
解决办法
5万
查看次数

HTML代码之间的PHP代码中的条件语句

我在PHP中使用由HTML代码分隔的条件语句时遇到了一些问题.这是我正在尝试编写的代码类型.这是一个配置文件页面,它只应由其配置文件的用户看到(我正在使用会话变量进行检查):

<?php if(check if user is logged in) ?>
<display users profile in html>
<?php else ?>
<display an error>
Run Code Online (Sandbox Code Playgroud)

但这不起作用.我也尝试使用简写符号,:在结尾if使用endif语句,但它没有用.(在早期的项目中,该:方法有效foreach,endforeach所以我想我会尝试一下)

有任何想法吗 ?

html php conditional-statements

31
推荐指数
3
解决办法
3万
查看次数

我如何使用NSConditionLock?或NSCondition

我试图使一个函数等待另一个函数,我想使用NSCondionLock来实现这一目标.我不是在寻求帮助,但我真的希望有人能给我一个体面的教程或示例来解释NSConditionLock,或者可能建议一个更好的方法.

iphone locking conditional-statements ios

31
推荐指数
3
解决办法
3万
查看次数

在解析之前,如何检查XML中属性和标记的存在?

我正在python中通过Element Tree解析XML文件,并将内容写入cpp文件.

子标签的内容对于不同的标签将是不同的.例如,第一个事件标记将party标记作为子标记但第二个事件标记没有.

- >如何在解析之前检查标签是否存在?

- > Children在第一个事件标记中有value属性,但在第二个事件标记中没有.如何在获取属性之前检查属性是否存在.

- >目前我的代码为非现有的party标签抛出了一个错误,并为第二个children标签设置了"None"属性值.

<main>
  <event>
    <party>Big</party>
    <children type="me" value="3"/>
  </event>

  <event>
    <children type="me"/>
  </event>

</main>
Run Code Online (Sandbox Code Playgroud)

码:

import xml.etree.ElementTree as ET
tree = ET.parse('party.xml')
root = tree.getroot()
for event in root.findall('event'):
    parties = event.find('party').text
    children = event.get('value')
Run Code Online (Sandbox Code Playgroud)

我想检查标签然后取其值.

python xml parsing elementtree conditional-statements

31
推荐指数
1
解决办法
5万
查看次数

在不使用条件语句和三元运算符的情况下,在C中最多找到三个数字

我必须找到最多由用户提供的三个号码,但有一些限制.不允许使用任何条件声明.我尝试使用下面的三元运算符.

max=(a>b?a:b)>c?(a>b?a:b):c
Run Code Online (Sandbox Code Playgroud)

但它再次限制使用三元运算符.现在我不知道该怎么做?

c algorithm conditional-statements

30
推荐指数
4
解决办法
5万
查看次数

如何检查CloudFormation脚本中是否已存在特定资源

我正在使用cloudformation来创建一个包含自动调整的ec2实例和S3存储桶的堆栈.对于S3存储桶,我将DeletionPolicy设置为Retain,工作正常,直到我想再次重新运行我的cloudformation脚本.由于在之前的运行中,脚本创建了S3存储桶,因此在后续运行中失败,说我的S3存储桶已经存在.当然也没有创建其他资源.我的问题是如何检查我的S3存储桶是否首先存在于cloudformation脚本中,如果存在,则跳过创建该资源.我查看了AWS中的条件,但它似乎都是基于参数的,我还没有找到一个从现有资源检查的函数.

automation amazon-web-services conditional-statements aws-cloudformation

30
推荐指数
3
解决办法
2万
查看次数

如何仅在IE中加载脚本

我需要在Internet Explorer浏览器中触发特定脚本!

我试过这个:

<!--[if IE]> 
<script></script>
<![endif]-->
Run Code Online (Sandbox Code Playgroud)

不幸的是,这实际上阻止了脚本的加载.

编辑:对于每个人都在问我为什么需要这个:当使用一些动画时,IE使滚动非常跳跃.为了解决这个问题,我需要实现一个向IE提供平滑滚动的脚本.我不想将它应用到其他浏览器,因为它们不需要它和这个脚本虽然使滚动更平滑也使它有点不自然.

javascript internet-explorer conditional-statements

30
推荐指数
3
解决办法
4万
查看次数

Python循环时的赋值条件

在C中,人们可以做到

while( (i=a) != b ) { }
Run Code Online (Sandbox Code Playgroud)

但在Python中,它似乎不可能.

while (i = sys.stdin.read(1)) != "\n":
Run Code Online (Sandbox Code Playgroud)

生成

    while (i = sys.stdin.read(1)) != "\n":
         ^
SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)

( ^应该在=)

有解决方法吗?

python loops while-loop conditional-statements

28
推荐指数
4
解决办法
1万
查看次数

在Linux上等待多个条件变量而没有不必要的睡眠?

我正在编写一个对延迟敏感的应用程序,它实际上想要一次等待多个条件变量.我之前已经阅读了几种在Linux上获得此功能的方法(显然这是在Windows上构建的),但它们似乎都不适合我的应用程序.我所知道的方法是:

  1. 让一个线程等待你想要等待的每个条件变量,当被唤醒时会发出一个你等待的单个条件变量.

  2. 通过定时等待循环遍历多个条件变量.

  3. 将虚拟字节写入文件或管道,然后轮询这些字节.

#1和#2不合适,因为它们会造成不必要的睡眠.使用#1,你必须等待虚拟线程唤醒,然后发出真实线程的信号,然后唤醒真正的线程,而不是真正的线程刚刚开始唤醒 - 额外的调度程序量子花费在这实际上对我的应用程序很重要,我宁愿不必使用完整的RTOS.#2更糟糕的是,你可能花费N*超时时间睡眠,或者你的超时将是0,在这种情况下你永远不会睡觉(无休止地烧掉CPU和饿死其他线程也很糟糕).

对于#3,管道是有问题的,因为如果"发出信号"的线程忙或甚至崩溃(我实际上处理的是单独的进程而不是线程 - 互斥和条件将存储在共享内存中),那么写入线程将被卡住,因为管道的缓冲区将是满的,任何其他客户端也是如此.文件存在问题,因为应用程序运行的时间越长,它就会无休止地增长.

有一个更好的方法吗?对于适用于Solaris的答案感到好奇.

c multithreading scheduling pthreads conditional-statements

27
推荐指数
3
解决办法
3万
查看次数

在Rails中,如果记录不存在,更新记录或创建新记录的最佳方法是什么?

我有一些模型的创建语句,但它在连接表中创建一条记录,无论该记录是否已存在.

这是我的代码的样子:

@user = User.find(current_user)
@event = Event.find(params[:id])
for interest in @event.interests
 @user.choices.create(:interest => interest, :score => 4)
end
Run Code Online (Sandbox Code Playgroud)

问题是无论如何都会创建记录.我希望只有在没有记录的情况下才创建记录; 如果记录确实存在,我希望它获取找到的记录的属性并加1或减1.

我一直在环顾四周看过一些叫做的东西find_or_create_by.当它找到记录时这会做什么?我希望它采用当前:score属性并添加1.

是否有可能找到或创建id?我不确定我会找到什么属性,因为我正在查看的模型是一个只有id外键和得分属性的连接模型.

我试过了

@user.choices.find_or_create_by_user(:user => @user.id, :interest => interest, :score => 4)
Run Code Online (Sandbox Code Playgroud)

但得到了

未定义的方法 find_by_user

我该怎么办?

ruby-on-rails conditional-statements

26
推荐指数
3
解决办法
3万
查看次数