Appearance
基本数据类型
基本数据类型
- 整型(int)
没有大小限制,可以当作 Long 类型使用
布尔型:布尔值只有
True
、False
两种值,要么是True
,要么是False
,在Python中,可以直接用True
、False
表示布尔值(请注意大小写),也可以通过布尔运算计算出来(例如3 < 5
会产生布尔值True
,而2 == 1
会产生布尔值False
)。浮点型(float)
复数( (complex))
复数由实数部分和虚数部分构成,可以用a + bj,或者complex(a,b)表示, 复数的实部a和虚部b都是浮点型
运算符
算术运算符
+
(加)、-
(减)、*
(乘)、/
(除)、//
(除法取整)、%
(取余)、**
(幂)
下面的代码通过键盘输入两个整数来实现对两个整数的算术运算。
Python
"""
使用print()函数输出带占位符的字符串
Version: 0.1
Author: lzy
"""
a = 5
b = 2
print('%d + %d = %d' % (a, b, a + b)) # 加法
print('%d - %d = %d' % (a, b, a - b)) # 减法
print('%d * %d = %d' % (a, b, a * b)) # 乘法
print('%d / %d = %f' % (a, b, a / b)) # 除法,总是返回一个浮点数
print('%d // %d = %d' % (a, b, a // b)) # 除法,只保留整数
print('%d %% %d = %d' % (a, b, a % b)) # 取余
print('%d ** %d = %d' % (a, b, a ** b)) # 幂运算
赋值运算符
赋值运算符应该是最为常见的运算符,它的作用是将右边的值赋给左边的变量。下面的例子演示了赋值运算符和复合赋值运算符的使用。
Python
"""
赋值运算符和复合赋值运算符
Version: 0.1
Author: lzy
"""
a = 10
b = 3
a += b # 相当于:a = a + b
a *= a + 2 # 相当于:a = a * (a + 2)
print(a) # 算一下这里会输出什么
比较运算符
比较运算符有的地方也称为关系运算符,包括==
、!=
、<
、>
、<=
、>=
,我相信没有什么好解释的,大家一看就能懂,唯一需要提醒的是比较相等用的是==
,请注意这个地方是两个等号,因为=
是赋值运算符,我们在上面刚刚讲到过,==
才是比较相等的比较运算符。比较运算符会产生布尔值,要么是True
要么是False
。
Python
"""
比较运算符的使用
Version: 0.1
Author: lzy
"""
flag0 = 1 == 1
flag1 = 3 > 2
flag2 = 2 < 1
print('flag0 =', flag0) # flag0 = True
print('flag1 =', flag1) # flag1 = True
print('flag2 =', flag2) # flag2 = False
逻辑运算符
逻辑运算符有三个,分别是and
、or
和not
。and
字面意思是“而且”,所以and
运算符会连接两个布尔值,如果两个布尔值都是True
,那么运算的结果就是True
;左右两边的布尔值有一个是False
,最终的运算结果就是False
。相信大家已经想到了,如果and
左边的布尔值是False
,不管右边的布尔值是什么,最终的结果都是False
,所以在做运算的时候右边的值会被跳过(短路处理),这也就意味着在and
运算符左边为False
的情况下,右边的表达式根本不会执行。or
字面意思是“或者”,所以or
运算符也会连接两个布尔值,如果两个布尔值有任意一个是True
,那么最终的结果就是True
。当然,or
运算符也是有短路功能的,在它左边的布尔值为True
的情况下,右边的表达式根本不会执行。not
运算符的后面会跟上一个布尔值,它的作用是得到与该布尔值相反的值,也就是说,后面的布尔值如果是True
运算结果就是False
,而后面的布尔值如果是False
则运算结果就是True
。
Python
"""
逻辑运算符的使用
Version: 0.1
Author: lzy
"""
flag0 = 1 == 1
flag1 = 3 > 2
flag2 = 2 < 1
flag3 = flag1 and flag2
flag4 = flag1 or flag2
flag5 = not (1 != 2)
print('flag3 =', flag3) # flag3 = False
print('flag4 =', flag4) # flag4 = True
print('flag5 =', flag5) # flag5 = False
说明:比较运算符的优先级高于赋值运算符,所以
flag0 = 1 == 1
先做1 == 1
产生布尔值True
,再将这个值赋值给变量flag0
。,
进行分隔,输出的内容之间默认以空格分开。
Python支持多种运算符,下表大致按照优先级从高到低的顺序列出了所有的运算符,运算符的优先级指的是多个运算符同时出现时,先做什么运算然后再做什么运算。除了我们之前已经用过的赋值运算符和算术运算符,我们稍后会陆续讲到其他运算符的使用。
运算符 | 描述 |
---|---|
[] [:] | 下标,切片 |
** | 指数 |
~ + - | 按位取反, 正负号 |
* / % // | 乘,除,模,整除 |
+ - | 加,减 |
>> << | 右移,左移 |
& | 按位与 |
^ | | 按位异或,按位或 |
<= < > >= | 小于等于,小于,大于,大于等于 |
== != | 等于,不等于 |
is is not | 身份运算符 |
in not in | 成员运算符 |
not or and | 逻辑运算符 |
= += -= *= /= %= //= **= &= ` | = ^= >>= <<=` |
说明: 在实际开发中,如果搞不清楚运算符的优先级,可以使用括号来确保运算的执行顺序。
进制转换
- 十进制转换为二进制
Python
"""
十进制转换为二进制
Version: 0.1
Author: lzy
"""
decimal_number = 42
print(decimal_number)
binary_number = bin(decimal_number)
print(binary_number)
- 十进制转换为八进制
Python
"""
十进制转换为八进制
Version: 0.1
Author: lzy
"""
decimal_number = 42
print(decimal_number)
octal_number = oct(decimal_number)
print(octal_number)
- 十进制转换为十六进制
Python
"""
十进制转换为十六进制
Version: 0.1
Author: lzy
"""
decimal_number = 42
print(decimal_number)
hexadecimal_number = hex(decimal_number)
print(hexadecimal_number)
类型判断
Python
"""
使用type()检查变量的类型
Version: 0.1
"""
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'>
类型转换
int(x) 将x转换为一个整数。
float(x) 将x转换到一个浮点数。
complex(x) 将x转换到一个复数,实数部分为 x,虚数部分为 0。
complex(x, y) 将 x 和 y 转换到一个复数,实数部分为 x,虚数部分为 y。x 和 y 是数字表达式。
Python
"""
使用input()函数获取键盘输入(字符串)
使用int()函数将输入的字符串转换成整数
使用float()函数将输入的字符串转换成浮点数
使用print()函数输出带占位符的字符串
Version: 0.1
"""
a = int(input('a = '))
b = float(input('b = '))
print('%d + %f = %f' % (a, b, a + b))
print('%d - %f = %f' % (a, b, a - b))
print('%d * %f = %f' % (a, b, a * b))
print('%d / %f = %f' % (a, b, a / b))
print('%d // %f = %d' % (a, b, a // b))
print('%d %% %f = %f' % (a, b, a % b))
print('%d ** %f = %f' % (a, b, a ** b))
说明:上面的print函数中输出的字符串使用了占位符语法,其中
%d
是整数的占位符,%f
是小数的占位符,%%
表示百分号(因为百分号代表了占位符,所以带占位符的字符串中要表示百分号必须写成%%
),字符串之后的%
后面跟的变量值会替换掉占位符然后输出到终端中,运行上面的程序,看看程序执行结果就明白啦。
练习
创建变量存储你的姓名、年龄和身高,并打印这些变量。
写一个程序,输入两个数,输出它们的和、差、积和商。
输入圆的半径计算计算周长和面积。
参考答案:
Python
"""
输入半径计算圆的周长和面积
Version: 0.1
"""
radius = float(input('请输入圆的半径: '))
perimeter = 2 * 3.1416 * radius
area = 3.1416 * radius * radius
print('周长: %.2f' % perimeter)
print('面积: %.2f' % area)
- 输入年份判断是不是闰年。
参考答案:
Python
"""
输入年份 如果是闰年输出True 否则输出False
Version: 0.1
"""
year = int(input('请输入年份: '))
# 如果代码太长写成一行不便于阅读 可以使用\对代码进行折行
is_leap = year % 4 == 0 and year % 100 != 0 or \
year % 400 == 0
print(is_leap)
说明:比较运算符会产生布尔值,而逻辑运算符
and
和or
会对这些布尔值进行组合,最终也是得到一个布尔值,闰年输出True
,平年输出False
。