"?"的由来

Python09

"?"的由来,第1张

源流

拉丁语quæstio,意即问题,简写成Qo。将大楷的Q写在小楷的o上的符号经转变后便成为现代的问号

另一说是认为问号起于9世纪,最初是一点并有一条向右上倾的曲线(好像.~,但曲线的右部分较高)。该点表示句子的终结,好像句号一般。曲线表示声调的提升,可能和早期的音乐记号有所结合。

变体

西班牙语自18世纪后便有这个用法:问句除了结尾要有问号之外,起首时要有倒问号“¿”。不过,这种格式在追求便捷的网络聊天中通常略去。

1580年代,反问问号出现,用于反问句尾。它是一般问号的反转,其开口不是朝向前面的句子。这个用法于1600年代消失。

疑问惊叹号是感叹号和问号的结合。

电脑

字符

问号是Unicode和ASCII字符63或0x003F。另有全角问号在 U+FF1F。

而倒问号则为Unicode字符191(0x00BF),在微软视窗内透过按Alt键不放打入0191打出,或将语系设成西班牙文,打“=”。在X11,连续打两个?会得出倒问号。

编程语言

?是C语言的三元运算子?:的部分。

在正规表示式,?表示之前的字符可以出现1或0次。

在Ruby,字符前加“?”会传回该字符的ASCII值,例如?a会传回97

其他

在很多软件中,会以“?”表示该字符不在程序的字集当中。

国际象棋

在国际象棋的棋谱,“?”表示劣著,“??”表示不应犯的大误著。

参考资料:http://www.tocatch.info/zh/%3F.htm#.E6.BA.90.E6.B5.81

三元表达式是:表示三元运算符需要三个操作数。三元运算符是软件编程中的一个固定格式,语法是“条件表达式?表达式1:表达式2”。使用这个算法可以使调用数据时逐级筛选。

举个简单例子:

int a=1int b=2int c= a>b?1:0,结果c 为0。a>b 为条件,后面当条件为true时返回":"前面的结果,反之返回":"后面的结果。

三元运算符是软件编程中的一个固定格式,语法是“条件表达式?表达式1:表达式2”。使用这个算法可以使调用数据时逐级筛选。

格式

如名字表示的三元运算符需要三个操作数。

语法为:条件表达式?表达式1:表达式2。

说明:问号前面的位置是判断的条件,判断结果为bool型,为true时调用表达式1,为false时调用表达式2。

其逻辑为:“如果条件表达式成立或者满足则执行表达式1,否则执行第二个。”常用在设置默认值,例如某个值不一定存在,则判断这个值是否存在,不存在给默认值(表达式2)。

这是一个三元运算符,其语法如下:

condition ? expression1 : expression2

如果 condition 为真,则表达式的值为 expression1;否则表达式的值为 expression2。

在这个特定的三元运算符中,condition 是 return+15%3,即对表达式 return + 15%3 的结果进行条件测试。% 是模运算符,它将左侧操作数除以右侧操作数,然后返回余数。在这种情况下,15 % 3 的结果为 0。

因此,condition 将计算为 return + 0,其中 return 是一个保留字,因此不能在这里使用。假设我们使用变量 value 来代替 return,那么 condition 将计算为 value + 0,即 value 的值。这意味着如果 value 是一个非零值,则 condition 为真;否则,它为假。

在表达式的其他部分中,如果 condition 为真,则将执行 ++x(将 x 的值增加 1),并将其作为整个表达式的值返回。否则,将执行 --x(将 x 的值减少 1),并将其作为整个表达式的值返回。

因此,这个表达式的含义是:如果 value 的值是非零的,则将 x 的值增加 1 并将其作为整个表达式的值返回;否则,将 x 的值减少 1 并将其作为整个表达式的值返回。