输入数据
空控制台录入数据使用input
方法,这个方法只有一个参数,基本用法如下:
input("录入提示")
input
方法会将用户录入的数据封装为一个字符串返回,比如:
password = input('请输入您的密码:')
print(f'您输入的密码是{password}')
print(type(password))
字符串转数字
录入的数据默认是字符串类型的,比如:
num = input('请输入数字:')
print(num)
print(type(num)) # str
print(type(int(num))) # int
我们要录入一个数字,就需要将用户录入的字符串转换为数字。
Python中字符串转数字十分简单,使用int
函数可以轻松实现,比如:
num = input("请输入数字:")
num = int(num)
print(num, type(num))
这里有一个细节需要注意。num
在最开始的时候是一个字符串类型,但是再数据转换以后,却变成了整数类型。也就是说,在Python中,同一个变量,在不同的时刻,是允许该变量为不同的数据类型的,这一点非常灵活和强大。
示例:录入两个整数,计算两个整数相加的结果并输出
num1 = int(input("num1 = "))
num2 = int(input("num2 = "))
print(f"{num1} + {num2} = {num1 + num2}")
其他数据类型转浮点数
转换为浮点数类型使用float
函数,比较常见的是将字符串转换为浮点数。整数也可以转换为浮点数,不过整数和浮点数操作,会自动被转换为浮点数。
示例:字符串转浮点数
s = "10"
num = float(s)
print(num, type(num), type(s))
示例:整数转浮点数
num = 1
fnum = float(num)
print(fnum, type(fnum), type(num))
示例:整数自动转浮点数
num1 = 1
num2 = 2.2
result = num1 + num2
print(result, type(result))
其他数据类型转字符串
使用str
函数,能够将其他数据类型转换为字符串,用法也十分简单。
示例:整数转字符串
num = 11
s = str(num)
print(s, type(s))
示例:浮点数转字符串
num = 111.222
s = str(num)
print(s, type(s))
示例:布尔值转浮点数
flag = True
s = str(flag)
print(s, type(s))
示例:列表转字符串
arr = [1, 2, 3]
s = str(arr)
print(s, type(s))
示例:元组转字符串
tarr = (1, 2, 3)
s = str(tarr)
print(s, type(s))
示例:字典转字符串
d = {"a":1, "b":2, "c":3}
s = str(d)
print(s, type(s))
示例:集合转字符串
sset = {1, 2, 3}
s = str(sset)
print(s, type(s))
其他数据类型转换为列表
使用list
函数,可以将可迭代对象转换为列表。
示例:元组转列表
tarr = (1, 2, 3)
arr = list(tarr)
print(arr, type(arr))
示例:集合转列表
sarr = {1, 2, 3}
arr = list(sarr)
print(arr, type(arr))
示例:生成器转列表
r = range(1, 4)
arr = list(r)
print(arr, type(arr))
字典也可以转换为列表。当把字典转换为列表的时候,取的是字典的所有的键来组成一个列表。比如:
d = {"a":11, "b":22}
arr = list(d)
print(arr, type(arr))
其他类型转元组
使用tuple
函数,能够将可迭代对象转换为元组类型。
示例:列表转元组
arr = [1, 2, 3]
tarr = tuple(arr)
print(tarr, type(tarr))
示例:集合转元组
sarr = {1, 2, 3}
tarr = tuple(sarr)
print(tarr, type(tarr))
示例:字典转元组
d = {"a":1, "b":2}
tarr = tuple(d)
print(tarr, type(tarr))
示例:生成器转元组
r = range(1, 4)
tarr = tuple(r)
print(tarr, type(tarr))
强大的eval函数
使用eval
函数,能够将字符串转换为Python中的数据类型。
示例:字符串转Python内置类型
str2 = '1'
str3 = '1.1'
str4 = '(1000, 2000, 3000)'
str5 = '[1000, 2000, 3000]'
print(type(eval(str2)))
print(type(eval(str3)))
print(type(eval(str4)))
print(type(eval(str5)))
复合赋值运算符
复合赋值运算符指的是赋值运算符和数学运算符合在一起组成的运算符,常见的有:、
-
+=
:加等于,a += b
相当于a = a + b
-
-=
:减等于,a -= b
相当于a = a - b
-
*=
:乘等于,a *= b
相当于a = a * b
-
/=
:除等于,a /= b
相当于a = a / b
-
%=
:取余等于,a %= b
相当于a = a % b
-
**=
:幂等于,a **= b
相当于a = a ** b
示例:复合运算符的用法
a = 11
b = 22
a += b
print(a)
a -= b
print(a)
a *= b
print(a)
a /= b
print(a)
a %= b
print(a)
a **= b
print(a)
练习:录入两个整数,分别计算两个数相加,相减,相乘,相除的结果,输出到控制台。
a = int(input("a = "))
b = int(input("b = "))
print(f"{a} + {b} = {a + b}")
print(f"{a} - {b} = {a + - b}")
print(f"{a} * {b} = {a * b}")
print(f"{a} / {b} = {a / b}")
输出结果:
a = 11
b = 22
11 + 22 = 33
11 - 22 = -11
11 * 22 = 242
11 / 22 = 0.5
练习:从控制台录入三个数,计算和,赋值给a。再录入三个数,计算差,赋值给b。计算a - b
的结果并输出。
a1 = int(input("a1 = "))
a2 = int(input("a2 = "))
a3 = int(input("a3 = "))
a = a1 + a2 + a3
b1 = int(input("b1 = "))
b2 = int(input("b2 = "))
b3 = int(input("b3 = "))
b = b1 - b2 - b3
print(f"{a} + {b} = {a + b}")
输出结果:
a1 = 11
a2 = 22
a3 = 33
b1 = 21
b2 = 22
b3 = 23
66 + -24 = 42
比较运算符
逻辑运算符是用于比较的运算符,得到的结果是布尔值。常见的逻辑运算符如下:
-
>
:大于 -
<
:小于 -
>=
:大于或等于 -
<=
:小于或等于 -
==
:等于
示例:比较运算符的基本使用
a = 11
b = 22
print(a > b)
print(a >= b)
print(a < b)
print(a <= b)
print(a == b)
练习:从控制台录入一个整数a,再录入一个浮点数b,求a和b的最大值然后输出。
# 录入
a = int(input("a = "))
b = float(input("b = "))
# 求最大值
max_num = a
if a < b:
max_num = b
# 输出
print(f"{a} 和 {b} 中的最大值是:{max_num}")
输出结果:
a = 33
b = 44
33 和 44.0 中的最大值是:44.0
逻辑运算符
Python常用的逻辑运算符如下:
-
and
:与 -
or
:或 -
not
:非
注意:Python没有 “&& || !” 这几个符号
练习:如果年份能被4整除,但不能被100整除,或者能被400整除,则该年是闰年。控制台录入一个年份,判断该年份是否为闰年。
# 录入
year = int(input("year = "))
# 判断
flag = year % 4 == 0 and year % 100 != 0 or year % 400 == 0
# 输出
print(f"{year}年是闰年吗:{flag}")
输出结果:
year = 2022
2022年是闰年吗:False
练习:春天是3,4,5月,控制台录入一个月份,判断该月份是不是春天。
# 录入
month = int(input("month = "))
# 判断
flag = month in [3, 4, 5]
# 输出
print(f"{month}月是春天吗:{flag}")
输出结果:
month = 3
3月是春天吗:True
原文始发于微信公众号(张大鹏520):Python基础语法03 数据类型转换和运算符
暂无评论内容