Python入门笔记(四)

人生苦短 我用Python


数据类型之间的转换

隐式类型转换

通过数学运算可以隐式将 int类型 转换成 float类型。

1
2
3
4
5
# 12.数据类型隐式转换
x = 10
y = 3
z = x/y
print(z,type(z),type(x)) # 则此时的"z"即为 float类型

显式类型转换

函数 说明
int(x) 将x转换为整数类型
float(x) 将x转换为浮点数类型
str(x) 将x转换为字符串
chr(x) 将整数x转换为一个字符
ord(x) 将一个字符x转换为其对应的整数值
hex(x) 将一个整数x转换为一个十六进制字符串
oct(x) 将一个整数x转换为一个八进制字符串
bin(x) 将一个整数x转换为一个二进制字符串
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# 13.数据类型显式转换
# float TO int 只保留整数部分
print(int(3.14))
print(int(3.9))
print(int(-3.14))
print(int(-3.9))
# int TO float 在整数后加" .0"
print(float(10))
# str TO int
print(int('100')+int('200')) # 注意,此时100与200均加了单引号,为字符串类型
# str TO float
print(float('3.14'))
# 注意,若字符串类型如"10a"这样,当其转换为int或float类型时会产生"ValueError"
# 注意,类似int('3.14')这样的语句,因为字符串"3.14"不是整数,也会产生"ValueError"

# chr & ord
print(ord('圆')) # 22278 将"圆"转换成对应的数值
print(chr(22278)) # 将数值转换成对应的字符

# 进制之间的转换 十进制 TO Other
print(hex(22278)) # 0x5706
print(oct(22278)) # 0o53406
print(bin(22278)) # 0b101011100000110

eval()函数

eval(s)函数将去掉字符串s最外侧的引号,并按照Python语句方式执行去掉引号后的字符串
其语法格式为:

变量=eval(字符串)

eval()函数经常和input()函数一起使用,来获取用户输入的数值型

1
2
3
4
5
6
7
8
9
10
11
12
13
# eval()函数
s = '3.14+2'
print(s,type(s)) # 3.14+2 <class 'str'>
x = eval(s)
print(x,type(x)) # 5.140000000000001 <class 'float'>

age = eval(input('请输入您的年龄:'))
print(age,type(age)) # 键入"21",得"21 <class 'int'>" 相当于int(age)
height = eval(input('请输入您的身高:'))
print(height,type(height)) # 键入"180.1",得"180.1 <class 'float'>" 相当于float(height)

# eval()报错情况
print(eval('hello')) # NameError: name 'hello' is not defined.

不同的进制数

进制数的进位

  • 二进制:0或1组成,满二进一,以Ob开头或0B开头
  • 八进制:0~7组成,满八进一,以Oo或0O开头
  • 十进制:0~9组成,满十进一
  • 十六进制:0~9和a~f或A~F组成,满十六进一,以0x或0X开头

运算符

算术运算符

算术运算符是处理四则运算的符号,在数字的处理中应用的最多

运算符 说明 示例 结果
+ 1+1 2
- 1-1 0
* 2*3 6
/ 10/2 5
// 整除 10//3 3
% 取余 10%3 1
** 幂运算 2**4 16

算术运算符的优先级:

  • 先乘除后加减
  • 同级运算从左到右依次运算
  • 可以使用()调整计算优先级
    • 第一级:**
    • 第二级:*,/,%,//
    • 第三级:+,-

赋值运算符

主要用于为变量进行赋值
直接把赋值运算符“=”右边的值赋给左边的变量

运算符 说明 示例 展开形式
= 简单的赋值运算 x=y x=y
+= 加赋值 x+=y x=x+y
-= 减赋值 x-=y x=x-y
*= 乘赋值 x*=y x=x*y
/= 除赋值 x/=y x=x/y
%= 取余赋值 x%=y x=x%y
**= 幂赋值 x**=y x=x**y
//= 整除赋值 x/=y x=x/y

另外,

1
2
3
4
5
6
7
# python支持链式赋值
a=b=c=100 # 相当于执行了 a=100 b=100 c=100
# python支持系列解包赋值
a,b=10,20 # 相当于执行了 a=10 b=20

# python中交换两个变量的值
b,a=a,b

比较运算符

也称关系运算符,用于对变量或表达式的结果进行大小、真假等比较,如果比较结果为真,则值为True,比较结果为假,值为False

运算符 作用 举例 结果
> 大于 98>90 True
< 小于 98<90 False
== 等于 98==90 False
!= 不等于 98!=90 True
>= 大于等于 98>=98 True
<= 小于等于 98<=98 True

逻辑运算符

逻辑运算符是对真和假两种布尔值进行运算,运算的结果仍是个布尔值

运算符 含义 用法 结合方向
and 逻辑与 表达式1 and 表达式2 从左到右
or 逻辑或 表达式1 or 表达式2 从左到右
not 逻辑非 not 表达式 从右到左

使用逻辑运算符进行逻辑运算的结果如下

表达式1 表达式2 1 and 2 1 or 2 not 1
T T T T F
T F F T F
F T F T T
F F F F T

注:上表T代表True,F代表False

  • A and B中,若A为False,则不对B进行计算,直接输出False
  • A or B中,若A为true,则不对B进行计算,直接输出True
    not 中,print(not(8>7))输出结果为False