1.Python属于强类型编程语言,Python解释器会根据赋值或运算来自动判断变量的类型。Python还是一种动态类型语言,变量的类型也是可以随时变化的。

 

>>> x=3
>>> print (type(x))  #查看变量类型
<class 'int'>
>>> x= 'Hello world!'
>>> print (type (x))
<class 'str'>
>>> x=[1,2,3]
>>> print (type(x))
<class 'list'>
>>> isinstance(3,int)  #测试对象是否是某个类型的实例
True
>>> isinstance('Hello world',str)
True

 

2.在定义变量名的时候。需要注意以下问题:

  变量名必须以字母或下划线开头,但以下划线开头的变量在python中共有特殊含义;

  变量名中不能有空格以及标点符号(括号、引号、逗号、斜线、反斜线、冒号、句号、问号等等);

  不能使用关键字作为变量名,可以导入keyword模块后使用print(keyword.kwlist)查看所有Python关键字;

  变量名对英文字母的大小写敏感,例如student和Student是不同的变量。

  不建议使用系统内置的模块名,类型名或函数名以及已导入的模块名及其成员名作变量名,这将会改变器类型和含义,可以通过dir(__builtins__)查看所有内置模块、类型和函数;

>>> id(2)
140706893452992
>>> id='2'
>>> id(2)
Traceback (most recent call last):
  File "<pyshell#12>", line 1, in <module>
    id(2)
TypeError: 'str' object is not callable

3.数字

  Python支持任意大的数字,具体可以大到什么程度仅受内存大小的限制。

  由于精度的问题,对于实数运算可能会有一定的误差,应尽量避免在实数之间直接进行相等性测试,而是应该以二者只差的绝对值是否足够小最为两个实数是否相等的依据。

  在数字的算术运算表达式求值时会进行隐式的类型转换,如果存在复数则都变成复数,如果没有复数但是有实数就都变成实数,如果都是整数则不进行类型转换。 

>>> 3**3               #这里**是幂运算符,等价于内置函数
27
>>> 0.3+0.3             #实数相加
0.6
>>> 0.5 - 0.2            #实数相减
0.3>>> 0.4 - 0.1 == 0.3        #应尽量避免直接比较两个实数相等
False
>>> abs(0.4 - 0.1 - 0.3) < 1e-6   #  这里1e-6表示10的-6次方
True

 

  python内置支持复数类型及其运算,并且形式与数学上的复数完全一致。

  python3.6.x支持在数字中间位置使用单个下划线最为分隔来提高数字的可读性,类似于数学上使用逗号作为千位分隔符。

  在python数字中单个下划线可以出现中间任意文职,但不能出现开头和结尾位置,也不能使用对各连续的下划线。

  python标准库fractions中的Fraction对象支持分数及其运算。

标准库fractions和decimal中提供的Decimal类实现了更高精度实数的运算。

  

 

posted on 2020-03-20 10:00  Lyon-w  阅读(665)  评论(0编辑  收藏  举报