巴克斯范式
巴克斯范式指的就是一个代码,从非终结符号转换到终结符号,这个代码是一个句子,它的语法结构可以用主语+谓语+宾语表示。
主语(subject)可以选择用名词(noun)作为终结符号。
谓语可选择动词(verb)作为终结符号.
宾语可选择名词(noun)作为终结符号.
所有的代码都可以简化为这样一种语法结构,但是它可以表达很多信息。当然它的特点就是准确和简单。
Python表达式
Python语法是一个非常严格的,比我们用的母语严格得多,当我们母语不严格时,我们还可以相互理解,而Python语法不严格时,会出现无效的语法结构。
Expression→Expression+oprator+Expression
有两个左边表达式和右边表达式,右边表达式可以从左边表达式替代
Expression 可以用number替代;number可以用0、1、2……替代
oprator可以用加减乘除替代
具体数字是终止符,加减乘除也是终止符。
当我们不用number代替时,我们也可以用右边表达式,这是一个无限循环的模式,这样的是不行的。
我们增加一个新的规则:那就是(expression)来表达一个新的表达式。
下面是我做错的题,值得注意:
Write Python code to print out how far light travels
in centimeters in one nanosecond. Use the values
defined below.
speed_of_light = 299792458 meters per second
centimeters = 100 one meter is 100 centimeters
nanosecond = 1.0/1000000000 one billionth of a second
print ((2997924581000)0.0000000001)
其实这是三个数字相乘怎样用Python表达呢?
我第一次输入的是((2997924581000)0.0000000001) 它是错误的,忘了输入print
第二次输入print ((2997924581000)0.0000000001)才是对的。
分析原因如下:如果你发现运行结果为0,尝试将值转换为小数。
当你将一个整数(没有小数点的数字) 除以另一个整数,Python 会做一些处理,称为整数除法,也就是会将结果的小数部分忽略掉。例如, 5/2 会得出结果 2 而不是 2.5,还有1/10 会得出结果 0 而不是 0.1。
要强制使 Python 运行出含小数的答案,需要通过在数字后加小数点的方式,使其中的一个数字成为小数。例如:5/2.0 就可以得出 2.5, 5.0/2也是一样。