# nature的最底层数据有两种:
# 数字、字符串。
# nature没有char的概念,只有字符串概念,用双引号包含。
# 数字有包含:整数、浮点数(小数、科学计数法)。
# 程序员不用特别区分整数、小数、科学计算法,系统会自动识别。
# 可以粗暴的理解:nature只有两种底层数据,即,数字和字符串
# 列表和字典是数字和字符串的组合形式
#例程1:数字
# 支持数字(浮点数)加减乘除,乘方,求模,
# 支持位操作(与、或、异或、非、左移、右移,位操作只适用于整数)
# 整数取值范围:-2**63 到 2**63 之间
# 浮点数范围:-4.940656458412465E-324到-1.797693134862315E+308
a = 10
print("%\n",a) #显示整数
a = 2.6 #小数
print("%\n",a) #显示15位小数
a = 2.6 #小数
print("%.2f\n",a) #显示2位小数
a = 1.5e-25 #科学计数法(e、或E等价,e、+、-前后不允许出现空格)
print("%\n",a) #显示15位小数
a = 1.5E+200 #科学计数法(e、或E等价,e、+、-前后不允许出现空格)
print("%\n",a) #默认显示科学计数法,保留15位小数
print("%.5f\n",a) #显示所有整数部分,保留15位小数
print("%.5e\n",a) #显示科学计数法,保留15位小数
# 在系统内部小数也自动按科学计数法保存
# 在使用print显示时,默认为输出科学计数法
# 可以通过格式控制 "%.nf"、"%.ne"控制显示小数的位数
# 书写代码时,程序员正常书写即可,不必关心数字类型,系统会智能处理
#例程2:数字运算
# 支持数字(浮点数)加减乘除,乘方,求模,
# 支持位操作(与、或、异或、非、左移、右移)
# 代数式运算的结果是整数、还是浮点数,系统智能处理,也不用程序员关注
b = 5
c = 4
d = -b*c+b*10
print("%\n",d) #运算结果d为整数
# 本例运算结果为整数,因为参数均为整数,所涉及运算也不会产生浮点数
b = 5
c = 4
d = -b*c+b*10/2
print("%\n",d) #运算结果d为浮点数
# 本例运算结果为浮点数,尽管参数均为整数,但是,所涉及的除法
# 导致输出为浮点数(除法输出浮点数)
b = 5
c = 4
d = -b*c+b**3
print("%\n",d) #运算结果d为浮点数
# 本例中,虽然代数式中的变量、常量均为整数,但是运算结果d为浮点数
# 原因是代数式中出现了**指数运算(power输出浮点数)。
a = 5
b = 3
c = 2
d = a+5*(b<<1)**c #括号优先(左移1位,b必须是整数),然后是乘方,再是乘除,最后加减
print("%.2f\n",d) #运算结果d为浮点数
# 参数中出现浮点数,运算结果自然也是浮点数
#例程3:浮点数取整、四舍五入取整
# 支持数字(浮点数)加减乘除,乘方,求模,
# 支持位操作(与、或、异或、非、左移、右移)
# 代数式运算的结果是整数、还是浮点数,系统智能处理,也不用程序员关注
a = 8
b = 5
c = 4
d = -b*c+b*10/3+a
print("%\n",d) #运算结果d为浮点数
x = int(d) #对d取整(丢弃小数部分)
print("%\n",x) #x为整数
y = int(d+0.5) #对d四舍五入取整
print("%\n",y) #y为整数
#例程4:字符串
# 字符串是被双引号包含的一串字符组合
# 当字符串中出现 "\n" 时,它们被转义为一个换行字符
# 使用函数len(str)计算字符串长度
# 只接受双引号,不接受单引号(nature任何情况下都没有用到单引号)
a = "Hellow world!"
print("%\n",a)
b = len(a) #计算字符串a的长度
print("%\n",b)
#例程5:取出字符串中指定位置的字符
a = "heLLow wORld!"
b = a[5] #返回字符串a的第5个字符(从0 计数,第5个是w),保存到变量b中
print("%\n",b)
print("%\n",a[9]) #直接打印第9个字符(R)
print("%\n",a) #a是源字符串,没变
# 如果要从字符串中获取一个汉字,输入参数必须是汉字对应的第一个字节的序号
#例程6:两个字符串可以直接相加,结果是两个字符串拼接
a = "heLLow wORld!"
b = "世界,你好!"
print("%\n",a+b) #b拼接在a后面,a的内容变化,b的内容不变
# 只支持两个字符串相加,不支持减法;
# 字符串与数字之间不能相减乘除等数学运算。
#例程7:支持两个字符串比较
a = "abc"
b = "ab"
if a > b
{
print("%\n","a > b")
}
elif a == b
{
print("%\n","a = b")
}
else
{
print("%\n","a < b")
}
# 只支持两个字符串直接比较(< <= == != >= >)。