2 数据类型转换和运算符

数据类型转换和运算符

1 输入 input

  • 输⼊功能的语法

  • 输⼊input的特点

所谓输入功能:

在Python中,程序接收⽤户输⼊的数据的功能即是输⼊。

1.1 输⼊的语法

input("提示信息")
# input 后面小括号中是给用户的提示信息

1.2 输⼊的特点

  • 当程序执⾏到 input ,等待⽤户输⼊,输⼊完成之后才继续向下执⾏。
  • 在 Python 中, input 接收⽤户输⼊后,⼀般存储到变量,⽅便使⽤
  • 在 Python 中, input 会把接收到的任意⽤户输⼊的数据都当做字符串处理。

在下面的代码演示中,我将操作两件事:

  1. 通过编写代码来了解 input

    input("提示信息")

  2. input 的特点

    • 遇到 input 等待用户输入
    • 接收 input 存变量
    • input 接收到的数据类型都是字符串

从上图可以看到当我们在代码中编写了 input 之后就并执行该程序就会发现该程序会卡住并且等待用户输入

当我们在接收 input 数据的时候一般将接收的数据存入到变量中

'''
1.书写 input
    input("提示信息")
2.观察特点
    2.1 遇到 input 等待用户输入
    2.2 接收 input 存变量
    2.3 input 接收到的数据类型都是字符串
'''

# 这里直接将用户输入的数据存放到了 password 变量中
password = input("请输入密码:")
print(f"密码是{password}")

# 通过 type 函数来验证 input 接收到的数据类型都是字符串
print(type(password))

输出:

root@go:~/py# /bin/python3 /root/py/test.py
请输入密码:1234
密码是1234
<class 'str'>

由此可以看出在 python 中通过 input 的方式将数据存放到我们指定的变量中,在后续的代码中可以接着使用

并且通过上面的代码输入可以看到 input 会将接收的数据类型转变为 string 类型

1.3 总结

  • 输⼊功能

    • input('提示⽂字')
  • 输⼊的特点

    • ⼀般将input接收的数据存储到变量
    • input接收的任何数据默认都是字符串数据类型

2 转换数据类型

  • 数据类型转换的必要性
  • 数据类型转换常⽤⽅法

2.1 转换数据类型的作⽤

问:input()接收⽤户输⼊的数据都是字符串类型,如果⽤户输⼊1,想得到整型该如何操作?

答:转换数据类型即可,即将字符串类型转换成整型。

2.2 转换数据类型的函数

下面表格中高亮部分则为相对重要的内容

下面代码中将 str 转换为 int 类型

'''
1.input
2.检测 input 数据类型是否为 str
3.通过 int() 将 str 转换数据类型
4.检测是否转换成功
'''

# input 是将所有接收的数据都转换为 str 类型
num = input("请输入数字:")
print(num,"数据类型:" ,type(num))

# 通过 int() 函数强制转换 num 数据类型
print('转换后的数据类型',type(int(num)))

输出

root@go:~/py# /bin/python3 /root/py/test.py
请输入数字:123
123 数据类型: <class 'str'>
转换后的数据类型 <class 'int'>

2.3 实验不同的数据类型转换

# 准备变量
num1 = 1
str1 = '10'
list1 = [1,2,3]     # 字典
t1 = (1,2,3)        # 元组

# 1. float() -- 转换成浮点型 
print("float()",float(num1),type(float(num1)))    # 1.0

print("float()",float(str1),type(float(str1)))    # 10.0

# 2. str() -- 转换成字符串类型
print("str()",int(num1),type(str(num1)))

# 3. tuple() -- 将⼀个字典转换成元组
print("tuple()",tuple(list1),type(tuple(list1)))

# 4. list() -- 将⼀个元组转换成字典
print("list()",list(t1),type(list(t1)))

# 5. eval() -- 计算在字符串中有效的 python 表达式,并返回一个对象
# 如果字符串里放了整数 1 ,那通过 eval 就可以将其把 str 转为 int
# 如果字符串里面是 1.1 ,那么通过 eval 就转为 float 类型
# 如果字符串是 (1,2,3) 元组,那么通过 eval 就可以转为 tuple 类型
# 如果字符串里是 [1,2,3] 字典,那么通过 eval 就可以转为 list 类型
# eval 的作用就是将字符串的数据转换为他原本的类型
str2 ='1'
str3='1.1'
str4='(1,2,3)'
str5='[1,2,3]'

print("eval",eval(str2),type(eval(str2)))
print("eval",eval(str3),type(eval(str3)))
print("eval",eval(str4),type(eval(str4)))
print("eval",eval(str5),type(eval(str5)))

输出:

root@go:~/py# /bin/python3 /root/py/test.py
float() 1.0 <class 'float'>
float() 10.0 <class 'float'>
str() 1 <class 'str'>
tuple() (1, 2, 3) <class 'tuple'>
list() [1, 2, 3] <class 'list'>
eval 1 <class 'int'>
eval 1.1 <class 'float'>
eval (1, 2, 3) <class 'tuple'>
eval [1, 2, 3] <class 'list'>

2.4 总结

  • 转换数据类型常⽤的函数
    • int()
    • float()
    • str()
    • list()
    • tuple()
    • eval()

3 运算符

3.1 运算符的分类

在 python 中有以下几类运算符

  • 算数运算符
  • 赋值运算符
  • 复合赋值运算符
  • ⽐较运算符
  • 逻辑运算符

3.2 算数运算符

注意:

  • 混合运算优先级顺序: () ⾼于 ** ⾼于 * / // % ⾼于 + -
# 混合运算, ** 优先级高于 * 所以等于 2*8
print(2 * 2 ** 3) # 16

# 混合运算, ()优先级高于 ** 所以等于 4**3 = 64
print((2 * 2) ** 3) # 64

3.3 赋值运算符

  • 单个变量赋值

    num=1
    print(num)
  • 多个变量赋值,之间需要通过逗号隔开,并且 = 两边个数相同

    num1 , float1 , str1 = 1,1.0,"hello"
    print(num1,float1,str1)   # 1 1.0 hello
  • 多变量赋相同值

    a = b = 10                # 将 a b 两个变量赋值为 10
    print(a,b)                # 10 10

3.4 复合赋值运算符

所谓复合赋值运算符如下:

将算术运算符执行后的结果在等号赋值到左边这个变量中

代码如下:

a = 10
a += 1  # a = a + 1 = 10 + 1 = 11
print(a)

b = 10
b -= 1  # b = b - 1 = 10 - 1 = 9
print(b)

c = 10 
# 输出13, 先算运算符右侧1 + 2 = 3, c += 3 , 推导出c = 10 + 3
c += 1 + 2  # c = c + 3 = 10 + 3 = 13
print(c) 

# 通过 *= 就知道是否符合上面我的判断,如果是 d *= 1 + 2 = 30
d = 10
d *= 1 + 2
print(d)

输出:

root@go:~/py# /bin/python3 /root/py/test.py
11
9
13
30          # 由此可见先算运算符右侧1 + 2 = 3

3.5 ⽐较运算符

⽐较运算符也叫关系运算符, 通常⽤来判断,以 bool 数据类型为默认类型

![image-20230131152037009](2 数据类型转换和运算符.assets/image-20230131152037009.png)

a = 7 
b = 5
print(a == b) # False
print(a != b) # True
print(a < b) # False
print(a > b) # True
print(a <= b) # False
print(a >= b) # True

3.6 逻辑运算符

一般在工作中使用到逻辑运算符都是为了来扩充条件。就是在多个条件之间的判断需要逻辑运算

  • and:与,两边为真时为真
  • or:或,一边为真时结果为真,都假时为假
  • not:非,取反

a = 1 
b = 2 
c = 3
print((a < b) and (b < c)) # True
print((a > b) and (b < c)) # False
print((a > b) or (b < c)) # True
print(not (a > b)) # True

3.6.1 拓展

数字之间的逻辑运算

a = 0 
b = 1 
c = 2

# and运算符,只要有⼀个值为0,则结果为0,否则结果为最后⼀个⾮0数字
print(a and b) # 0
print(b and a) # 0
print(a and c) # 0
print(c and a) # 0
print(b and c) # 2
print(c and b) # 1

# or运算符,只有所有值为0结果才为0,否则结果为第⼀个⾮0数字
print(a or b) # 1
print(a or c) # 2
print(b or c) # 1

4 总结

  • 算数运算的优先级

    • 混合运算优先级顺序:() ⾼于 ** ⾼于 * / // % ⾼于 + -
  • 赋值运算符

    • =
  • 复合赋值运算符

    • +=
    • -=
    • 优先级
      1. 先算复合赋值运算符右侧的表达式
      2. 再算复合赋值运算的算数运算
      3. 最后算赋值运算
  • ⽐较运算符

    • 判断相等: ==
    • ⼤于等于: >=
    • ⼩于等于:<=
    • 不等于: !=
  • 逻辑运算符

    • 与: and
    • 或:or
    • ⾮:not
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇