python
变量和数据类型
变量是一种存储数据的载体。
name = '帅哥' #把帅哥赋给了变量name
几种常用的数据类型
整型:Python中可以处理任意大小的整数(Python 2.x中有int和long两种类型的整数,但这种区分对Python来说意义不大,因此在Python 3.x中整数只有int这一种了),而且支持二进制(如0b100,换算成十进制是4)、八进制(如0o100,换算成十进制是64)、十进制(100)和十六进制(0x100,换算成十进制是256)的表示法。
浮点型:浮点数也就是小数,按照科学记数法表示时,一个浮点数的小数点位置是可变的,浮点数除了数学写法(如123.456)之外还支持科学计数法(如1.23456e2)。
字符串型:字符串是以单引号或双引号括起来的任意文本,比如’hello’和"hello"
布尔型:布尔值只有True、False两种值,在Python中,可以直接用True、False表示布尔值(注意大小写),也可以通过布尔运算计算出来(例如3 < 5会产生布尔值True,而3 == 5会产生布尔值False)。
复数型:形如3+5j,跟数学上的复数表示一样,唯一不同的是虚部的i换成了j。
变量命名
对于每个变量我们需要给它取一个名字,就如同我们每个人都有属于自己的响亮的名字一样。在Python中,变量命名需要遵循以下这些必须遵守硬性规则和强烈建议遵守的非硬性规则。
硬性规则:
变量名由字母(广义的Unicode字符,不包括特殊字符)、数字和下划线构成,数字不能开头。
大小写敏感(大写的a和小写的A是两个不同的变量)。
不要跟关键字(有特殊含义的单词,后面会讲到)和系统保留字(如函数、模块等的名字)冲突。
用小写字母拼写,多个单词用下划线连接。
受保护的实例属性用单个下划线开头
私有的实例属性用两个下划线开头
变量的使用
下面通过几个例子来说明变量的类型和变量使用。
a = 1
b = 2
print(a + b)
"""
使用input函数输入
使用int()进行类型转换
用占位符格式化输出的字符串
"""
a = int(input('a = '))
b = int(input('b = '))
print('%d + %d = %d' % (a, b, a + b)) #有几个变量 在括号中就有几个 1 + 2 = 3
name=input('请输入您的名字:')
w=input('请输入您的体重(kg):')
w=float(w)
h=input('请输入您的身高(m):')
h=float(h)
BMI= w/h*h
if BMI <18.5:
print(name,'你的BMI指数为%.1f' %(BMI) ,'你个猴子')
elif BMI>=18.5 and BMI<=25:
print(name,'你的BMI指数为%.1f' %(BMI),'你还不错')
elif 25<BMI<28:
print(name,'你的BMI指数为%.1f' %(BMI),'你咋这么沉')
elif 28<BMI<32:
print(name,'你的BMI指数为%.1f' %(BMI),'你是猪吗')
else:
print(name,'你的BMI指数为%.1f' %(BMI),'再见')
"""
使用type()检查变量的类型
"""
a = 100
b = 12.345
c = 1 + 5j
d = 'hello, world'
e = True
print(type(a)) #<class 'int'>
print(type(b)) #<class 'float'>
print(type(c)) #<class 'complex'>
print(type(d)) #<class 'str'>
print(type(e)) #<class 'bool'>
在对变量类型进行转换时可以使用Python的内置函数
int():将一个数值或字符串转换成整数,可以指定进制。
float():将一个字符串转换成浮点数。
str():将指定的对象转换成字符串形式,可以指定编码。
chr():将整数转换成该编码对应的字符串(一个字符)。
ord():将字符串(一个字符)转换成对应的编码(整数)。
运算符
Python支持多种运算符,下表大致按照优先级从高到低的顺序列出了所有的运算符,我们会陆续使用到它们。
运算符 描述
[] [:] 下标,切片
** 指数
~ + - 按位取反, 正负号
* / % // 乘,除,模,整除
+ - 加,减
>> << 右移,左移
& 按位与
^ ` `
<= < > >= 小于等于,小于,大于,大于等于
== != 等于,不等于
is is not 身份运算符
in not in 成员运算符
not or and 逻辑运算符
= += -= *= /= %= //= **= &= ` = ^= >>= <<=`
搞不清楚优先级可以使用括号来确保运算的执行顺序。
下面的例子演示了运算符的使用。
"""
运算符的使用
"""
a = 5
b = 10
c = 3
d = 4
e = 5
a += b #a=a+b
a -= c #a=a-c
a *= d #a=a*d
a /= e #a=a/e
print("a = ", a) #a = 9.6
flag1 = 3 > 2
flag2 = 2 < 1
flag3 = flag1 and flag2
flag4 = flag1 or flag2
flag5 = not flag1
print("flag1 = ", flag1) #flag1 = True
print("flag2 = ", flag2) #flag2 = False
print("flag3 = ", flag3) #flag3 = False
print("flag4 = ", flag4) #flag4 = True
print("flag5 = ", flag5) #flag5 = False
print(flag1 is True) #True
print(flag2 is not False) #False