Python基础学习03--变量 数据类型

python-变量类型

什么叫变量?变量就是可以重复使用的一个量,或者说是一个代号。

变量的命名规则

1、变量组成:字母+数字+下划线

2、一般以字母(大写,小写均可)开头------>frist1,Second2

3、数字不能开头------>4four,5five会报语法错误

4、大小写敏感,要严格区分大小写------>First != first

5、下划线可以开头,但是强烈不建议使用,一般以下划线开头的内容具有特殊含义

6、不能与关键字相同------>关键字是Python语言里面的特殊字符串

# 查看关键字
import keyword
print(keyword.kwlist)

7、不能与内置函数相同------>print

# 内置函数可以作为变量使用,但是该函数会失去原有的意义
>>> print = 3
>>> print
3
>>> print("hello world")
Traceback (most recent call last):
  File "<pyshell#2>", line 1, in <module>
    print("hello world")
TypeError: 'int' object is not callable

8、推荐使用具有固定含义的英文单词或者缩写, srv=server skt=socket

9、中文可作为变量使用,但是强烈不建议

变量赋值

等号(=)用来给变量赋值

等号(=)左边为变量,等号(=)右边为存储在变量中的值

movies = '我不是药神'
print(movies)
movies = '当幸福来敲门'
print(movies)
num1 = 3
num2 = 9.2
num3 = num1 + num2
print(num3) name = 'test' room = '508' office = name + room print(office)

 输出结果如下:

我不是药神
当幸福来敲门
12.2
test508

多变量赋值

多变量赋值即同时为多个变量进行赋值

# 查看对象的地址:id()
# 多个变量指向同一个位置
a = b = c = 13
print(a,b,c,id(a),id(b),id(c))

# 不同变量同时指向不同的对象
a,b,c = 'mon','wed',7
print(a,b,c,id(a),id(b),id(c))

输出结果中可以看出,a = b = c = 13中3个变量都指向同一个内存地址

13 13 13 1596646352 1596646352 1596646352
mon wed 7 55821440 55821536 1596646256

变量类型

python3中有6个标准数据类型:

  • 数字(Number)
  • 字符串(String)
  • 列表(List)
  • 元组(Tuple)
  • 字典(Dict)
  • 集合(Set)

获取类型的方法

  • type()
  • isinstance()

type()

print(type(520))

print(type(5.20))

list1 = []
print(type(list1))

tuple1 = ()
print(type(tuple1))

dic = {}
print(type(dic))

输出结果如下:

<class 'int'>
<class 'float'>
<class 'list'>
<class 'tuple'>
<class 'dict'>

isinstance()

验证()类型是否正确,并返回bool值

isinstance(object, classinfo)

print(isinstance('a',bool))

print(isinstance(520,int))

print(isinstance(3.1415,float))

print(isinstance(['list',1,.5],list))

print(isinstance((2,[3,1.0],'2'),tuple))

输出结果如下:

False
True
True
True
True

  

数字类型(Num)

数字类型包含4种:

  • 整数(int)
  • 浮点数(float)
  • 布尔值(bool)
  • 复数(complex)

整数类型

一般称为整数或者整型,正整数或者负整数

例如:3,-3

浮点数

浮点数就是俗称的小数,正或者负;浮点数也可以用科学记数法表示------>1.3e-3 = 1.3 x 10-3 = 0.0013

浮点数的写法:0.3 == .3  ,  3.1415  ,  3.     

布尔值

布尔值即表示真假的值,即True,False

布尔值可以跟数字直接操作------>True == 1;False == 0

复数

复数由实数部分和虚数部分组成,可以用a + bj,或者complex(a,b)表示, 复数的实部a和虚部b都是浮点型。

例如:5+3j  ==  complex(5,3)

 

数值类型转换

数据类型的转换,只需将数据类型作为函数名即可

# 浮点型转换为整型
a = 5.99
b = int(a)
print(b)

# 字符串转换为浮点型
# 字符串转换为整型或者浮点型,字符串内容必须为数字
a = '520'
b = float(a)
print(b)

# 浮点型转换为字符串
a = 5.99
b = str(a)
print(b)

# e记法转换为字符串
a = 5e19
b = str(a)
print(b)

输出结果如下:

5
520.0
5.99
5e+19

 

运算符

运算符包括以下几种:

  • 算术运算符
  • 比较或者关系运算符
  • 赋值运算符
  • 逻辑运算符
  • 位运算
  • 成员运算
  • 身份运算符

算术运算符

# +,-跟正常算术运算符一模一样
a = 8 + 6 - 3
print(a)

# 乘号用星号(*)代替
a = 6 * 7
print(a)

# 除号用斜杠(/)代替
# 在Python2.x 和python3.x 中,除号(/)结果可能不一致,此处以3系列为准
a = 7 / 4
print(a)

# % 取余运算
# 两个数字相除应该有商数有余数
# % 只会得到余数
a = 7 % 4
print(a)

# // 表示取商运算,也叫地板除
a = 8 // 3
print(a)

# ** 表示幂运算
a = 3 ** 3
print(a)

输出结果如下:

11
42
1.75
3
2
27

比较或者关系运算符

  1. 对两个变量或者值进行比较的运算符
  2. 比较的结果是布尔值,即True/False
# == , 等于号
a = 3 ** 4
# 下面语句执行顺序是
# 1、 计算 a == 80
# 2、 把结果放入b中
b = a == 80
print(b)


# != 不等于
print( 9 != 8 )

# > 大于
# < 小于
# >= 大于等于
# <= 小于等于

输出结果如下:

False
True

赋值运算符

# = , 赋值
a = 0
A = a = 4
print('A = ',A)

# +=, 是缩写
a = 0
a += 7      # a = a+ 7 的缩写
print('a = ',a)

# -=
b = 0
b -= 2      # b = b - 2
print('b = ',b)

# *=
c = 2
c *= 2      # c = c * 2
print('c = ',c)

# /=
d = 2
d /= 2      # d = d / 2
print('d = ',d)

# //=
e = 9
e //= 4     # e = e // 4
print('e = ',e)

# %=
f = 5
f %= 2      # f = f % 2
print('f = ',f)

# **=
g = 3
g **= 3     # g = g ** 3
print('g = ',g)

输出结果如下:

A =  4
a =  7
b =  -2
c =  4
d =  1.0
e =  2
f =  1
g =  27

逻辑运算符

对布尔值进行计算的符号

  • and 逻辑与
  • or 逻辑或
  • not  逻辑非

运算规则:

  1. and看做乘法(*), or看做加法(+),
  2. True看做1, False看做0
  3. 则逻辑运算就能转换成整数数学运算
  4. 最后结果如果是0则为False, 否则为True
# 逻辑运算符案例
a = False
b = False
c = True

# 以下式子等价于 d = 0 * 0 + 1
d = a and b or c
print(d)


d = a or b and a
print(d)

输出结果如下:

True
False

逻辑运算的短路问题:

逻辑运算式,按照运算顺序计算,一旦能够确定整个式子未来的值,则不再进行计算,直接返回

a = True
b = False
c = False

print(a or a and b or c)
# 当or的左侧a = True时,则or右侧的表达式不再执行
# or在表达式中优先级最低

print(b and (a or c and b))
# 当and的左侧b = False时,则and右侧的表达式不再执行
# and在表达式中优先级最低

print(not c or a and b)
# 优先级:not > and > or
# or 左侧not c == True,故a and b不用执行

输出结果如下:

True
False
True

成员运算符

用来检测某一个变量是否是另一个变量的成员,返回值为布尔类型

  • in
  • not in
list1 = [1,3,5,7,9]

a = 7
b = a in list1
print(b)

a = 4
print(a in list1)

print(a not in list1)

输出结果如下:

True
False
True

身份运算符

比较两个对象的存储单元,返回值为布尔类型

  • is
  • is not
a = b =9
print( a is b)
if id(a) == id(b):
    print('内存地址一致')
else:
    print('内存地址不同')

a = "I love you"
b = "i love you"
print(a is b)

print(a is not b)

if id(a) == id(b):
    print('内存地址一致')
else:
    print('内存地址不同')

输出结果如下:

True
内存地址一致
False
True
内存地址不同

运算符的优先级问题

运算符的优先级参照下图,从上到下,从左到右,优先级递减

 

参考资料:

1、图灵学院:http://www.tulingxueyuan.com/

2、鱼C论坛:https://fishc.com.cn/forum-243-1.html

3、菜鸟教程:http://www.runoob.com/python3/python3-tutorial.html

4、《 Head First Python 》

 

posted @ 2018-10-25 09:59  落晨  阅读(322)  评论(0编辑  收藏  举报