如果你看下面的python代码行:
bpy.ops.object.particle_system_add({"object":bpy.data.objects[2]})
Run Code Online (Sandbox Code Playgroud)
你会看到参数中有大括号括起来的东西.任何人都可以告诉我括号是什么(一般来说)?我在python中没有真正看到这种类型的语法,我找不到任何文档.
任何帮助是极大的赞赏.谢谢.
我在groovy编码,我试图返回一些JavaScript.这是我需要返回一个包含大括号的字符串的问题,当然groovy将其视为错误.这是一个简单的例子:
${ i == 0 ? '{' : '}, {' }
Run Code Online (Sandbox Code Playgroud)
我想要返回:
{或
},{
计划和简单.
${ i == 0 ? 'should be left brace' : "should be right brace coma left brace" }
Run Code Online (Sandbox Code Playgroud)
花括号可以转义,类似于转义引号吗?
我试过了:
${ i == 0 ? '\{' : '\}, \{' }
Run Code Online (Sandbox Code Playgroud)
和
${ i == 0 ? '{{' : '}}, {{' }
Run Code Online (Sandbox Code Playgroud)
谢谢.
我喜欢C和PHP的分号和大括号.
现在我开始使用Python进行编程,当代码变大时,如果没有它们(大括号和分号),我觉得非常混乱.
PHP或C中的方向效率更高,速度更快,至少对我而言.
另一方面,我喜欢Python的许多功能.
但是,我认为在一段时间内维护代码会非常困难.
如果没有分号和大括号,你如何编写可读代码?
是否有Eclipse或Netbeans的插件可以模拟分号和大括号.
提前感谢您的建议.
附加问题: 是否有带分号和大括号的Python版本?
解决了 !!!
我找到了一些看起来像python的改进版本的东西 http://writeonly.wordpress.com/2010/04/01/whython-python-for-people-who-hate-whitespace/
我会试试看.
多谢你们.
我找到了几个使用新的Initializer语法的例子{...}
.但这些例子已经很老了.我只是想交叉检查 - 目前的情况仍然如描述的那样?
在每个上下文(特别是模板)中,以下源片段始终是非模糊的 - 无论是什么T
和v
不是.
T{v};
- 始终构造临时类型T
并使用值初始化它v
.T x{v};
- 初始化带有值x
的类型变量.T
v
T x = {v};
- 同样,因为=
这里只是可选的.T a[] = {v};
- 使用值初始化数组的所有元素v
.p = new T{v};
- T
在堆上分配类型的对象并使用值初始化它v
.因此,它仍然是正确的,告诉人们"更喜欢{}
-syntax,你的源代码不会有不同的含义,取决于什么T
和v
是什么".
我知道{}
用于分隔函数,类和条件分支等实体,但它们还有其他用途吗?
#import <stdio.h>
int main(void) {
{{{
printf("main\n");
}}}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
编辑:
我发现它主要用于信息隐藏以及嵌套函数.从下面的答案看,它们似乎可以在调试期间用作标记,并在发布中删除,但这不应该得到认可.
这是一个非常简单的问题,但在我向前推进之前我想知道这个问题,所以我理解这个过程.
在我关注的教程中,我使用的是if语句.如果您执行以下代码,则无需使用{}
if (userValue == "1")
message = "You won a new car!";
Run Code Online (Sandbox Code Playgroud)
但是,如果您使用多行代码,则需要{}.
if (userValue == "1")
{
WriteLine ("You won a new car!");
ReadLine ();
}
Run Code Online (Sandbox Code Playgroud)
有人可以用非常简单的术语向我解释为什么会这样吗?我只需要一个经验法则,这样我就可以理解为什么.没有什么过于复杂我只是一个初学者.我知道他们识别出一段代码,但我不确定为什么这会对一两行产生影响?
我已经有一段时间自学shell脚本了,我遇到了关于grep和花括号{}的Linux基础知识手册的这一部分.我的问题是,当我要求使用{}或花括号从最小到最大出现次数搜索字符串模式时,我的结果超出了我指定的最大值.
这是发生了什么:
Express11:~/unix_training/reg_ex # cat reg_file2
ll
lol
lool
loool
loooose
Express11:~/unix_training/reg_ex # grep -E 'o{2,3}' reg_file2
lool
loool
loooose
Express11:~/unix_training/reg_ex #
Run Code Online (Sandbox Code Playgroud)
根据手册,不应该是这样的情况,因为我在这里指定我只查找包含两个连续o到三个连续o的字符串.
编辑:实际上,我不理解花括号如何工作的原因是因为手册的这种简单的解释.我引述:
19.4.10.在n和m次之间这里我们要求从最小2到最多3次.
Run Code Online (Sandbox Code Playgroud)paul@debian7:~$ cat list2 ll lol lool loool paul@debian7:~$ grep -E 'o{2,3}' list2 lool loool paul@debian7:~$ grep 'o\{2,3\}' list2 lool loool paul@debian7:~$ cat list2 | sed 's/o\{2,3\}/A/' ll lol lAl lAl paul@debian7:~$
感谢所有回复的人.
我最近看到一段C代码,包括以下样式的宏:
#define TOTO() \
do { \
do_something(); \
do_another_something(); \
} while (0)
Run Code Online (Sandbox Code Playgroud)
我起初想知道do while (0)
这里的目的,但是这个答案向我解释:如果宏只是在一个if
或else
没有花括号之后使用,就像这样:
if (something)
TOTO();
else
do_something_else();
Run Code Online (Sandbox Code Playgroud)
所以这里没有do while (0)
语句,代码将扩展为:
if (something)
do_something();
do_another_something();
else
do_something_else();
Run Code Online (Sandbox Code Playgroud)
这在语法上是错误的,因为else
它不再直接跟随if
范围.
但是我认为它可以通过在自己的范围内声明宏来实现,而不必do while
围绕它,所以我用大括号测试了相同的代码.我的整个代码如下所示:
#include <stdio.h>
#define HELLO_WORLD() \
{ \
printf("hello "); \
printf("world!\n"); \
}
int main(int argc, char** argv)
{
if (argc == 1)
HELLO_WORLD();
else
fprintf(stderr, "nope\n");
return 0;
} …
Run Code Online (Sandbox Code Playgroud) 我写这个MATLAB代码:
legend('\alpha={1,2});
Run Code Online (Sandbox Code Playgroud)
得到α= {1,2},但我得到α= 1,2.大括号不显示.如何使用图例制作花括号?
以下print语句在访问数组引用的第一个元素时有效
my $aref = [6, 7, 8];
print $aref->[0];
print $$aref[0];
print ${$aref}[0];
Run Code Online (Sandbox Code Playgroud)
在第3次印刷中允许/使用花括号的原因是什么?它是按设计还是偶然工作?