Python 学习知识四——基本数据类型:
学习记录及信息记录:
本文是关于基本数据类型的相关学习记录
基本数据类型有三种分别是:整型和浮点型、布尔类型、字符串类型
整型,顾名思义是整数,例如3
,5
等;
浮点型,包含整数和小数,例如3.14
等
布尔类型,用来判断,分别是True
和Flase
字符串类型,一种字符串,例如"abcd"
除了基本数据类型,还有高级数据类型,包括字典
,列表
等
学习记录
学习过程的记录:
1.整型和浮点型
对于一个数据类型,我们也可以采用type
函数来查看数据类型
y = 9
i = type(y)
print(i)
得到的结果为
<class 'int'>
同样,我们可以采用一种更加简洁的代码
x = 10
y = 3.1415926
print(type(x))
print(type(y))
可以查看x
,y
的数据类型分别为整型
和浮点型
<class 'int'>
<class 'float'>
2.布尔类型
(1)比较表达式
通常看到如下的代码
# 两个数的比较
x = 10
y = 3.14
print(x > y)
print(x == y)
print(x <= y)
# 做分支判断
age = 23
if age > 18:
print("播放成人电影")
else:
print("播放动画片")
上述输出结果为
播放成人电影
True
False
False
(2)直接使用布尔值(较少)
例如下述代码,一般较少使用
a1 = True
print(a1)
print(type(a1))
运行结果为
True
<class 'bool'>
add1
(3)所有数据都有自己的bool值
3.1 整型和浮点型的零值:0
可对下面不同种类布尔值进行检测
print(2 > 1)
print(bool(2 > 1))
print(bool(1))
print(bool(0))
print(bool(-1))
print(bool(3.12))
print(bool(-2.13))
运行结果如下
True
True
True
False
True
True
True
3.2 字符串""、列表[] 、字典 {}为零值
print(bool("False"))
print(bool("True"))
print(bool(""))
print(bool([]))
print(bool({}))
运行结果为
True
True
False
False
False
3.字符串类型:
字符串相关内容:
字符串是通过' '
" "
''' '''
""" """
将一系列字符组成的序列表示出来
# 方式1
a = '1'
# 方式2
b = "2"
# 方式3
c = '''
1.开始新游戏
2.继续游戏
3.查看存档
4.设置
5.退出
'''
# 方式4
d = """
这是
一个Python字符串
讲解
"""
print(a)
print(b)
print(c)
print(d)
输出结果
1
2
1.开始新游戏
2.继续游戏
3.查看存档
4.设置
5.退出
这是
一个Python字符串
讲解
4.字符串中的转义符:
下面是对转义符描述和一类常见的转义字符:
字符串
(1)将某些普通符号给予特殊功能
(2)将一些特殊功能的符号普通化
\'
是为了避免 ' '
与字符串中的'
出现歧义
\\
是为了避免\
与字母产生的歧义例如\n
等
其他也类似,有具体使用场景
我们可以在pycharm编译器中简单观察上述转义符的效果
print('i\'m a apple') # \'表示单引号
print('she said:\"Hello!\"') # \"表示双引号
print("C:\\Users\\Desktop") # \\表示反斜杠
print("Hello\nworld") # \n表示换行符
print("hello\tWorld") # 表示制表符
print("Hello\rWorld") # 表示回车符
运行结果如下
i'm a apple
she said:"Hello!"
C:\Users\Desktop
Hello
world
hello World
World
我们还可以学习以下知识
一个常见的字符串 s = “Hello hai!”
字符串是容器(由字符组成),也是有序的(可进行序列操作)
字典(dict)是容器但是无序,可序列操作,列表(list)、元组(tuple)等高级数据类型也可做序列操作,后续将说到
(1)索引取值
可以通过下述代码对字符段对应位置进行索引
字符串[索引]——查询字符
s = "Hello hai!"
print(s[0])
print(s[5])
print(s[9])
print(s[-2])
输出结果:
H
!
i
(2)切片操作
字符串[开始索引:结束索引:step = 1(默认)]——切片操作,(顾头不顾尾)
只能从前到后切,假如补偿为负,也可以从后到前,不过这是更高级知识,前期不用掌握,可参照下面的例子
#对应位置,前面数字算,后面不算
print(s[0:5])
print(s[4:])# 缺省,取到最后
print(s[:4])# 缺省,取到最前
print(s[2:-1])
print(s[-6:-2])
print(s[0:5:2])
print(s[5:0:-1])
print(s[:])
print(s[::-1])
输出结果:
Hello
o hai!
Hell
llo hai
o ha
Hlo
olle
Hello hai!
!iah olleH
(3)in判断
print("y" in s)
print("Hello" in s)
print("el" in s6)
print("e l" in s6)
输出结果:
False
True
True
False
(4)字符串拼接
s1 = "ni"
s2 = "hao"
s3 = s1 + " " + s2
print(s3)
s4 = "18"
print(f"我今年{s4},名字叫{s1 + s2}")
print("我今年" + s4 + ",名字叫" + s1 + s2)
print("*"*10)
输出结果:
ni hao
我今年18,名字叫nihao
我今年18,名字叫nihao
**********
(5)计算字符串对象的长度:元素的个数 解释器内置函数 len
s5 = "hi hai"
print(len(s5))
s6 = "我shi"
print(len(s6))
输出结果是
6
4
5.格式化输出
不固定化输出一个字符串,可改变部分
占位符有三种:
1.%d
数字占位
2.%s
字符串占位
3.%f
浮点数占位
5.1将变量插入到字符串
# 使用 %s 将变量插入到字符串中,占位
name = "xiao"
age = 18
Height = 1.80
print("大家好,我的名字叫%s,今年%d岁,身高%.2f米。" % (name, age, Height))
5.2 f-string 将变量插入到字符串中
# f-string 将变量插入到字符串中,插入(推荐)
name = "xiao"
age = 18
Height = 1.80
print(f"大家好,我的名字叫{name},今年{age}岁,身高{Height:.2f}米。")
输出结果一致如下
大家好,我的名字叫xiao,今年18岁,身高1.80米。
大家好,我的名字叫xiao,今年18岁,身高1.80米。
6.输入输出函数
输入函数:input("")
输入输出函数主要是用于客户端之间的交互操作,可简单观察下述代码
print(" New game")
name = input("请输入用户名:")
print(" great!")
age = input("请输入年纪:")
print(f"我的名字是:{name},我的年纪是:{age}")
在终端运行结果的界面,输入你想输入的字符串
请输入用户名:海
great!
请输入年纪:18
我的名字是海,我的年纪是18
下面还有一个思考
num1 = 100
num2 = 200
print(num1 + num2)
可得到计算结果
300
但是我们学习了输入输出函数后,我们需要动态的输入可变的num1
和num2
所以我们理所当然的进行如下操作
num1 = input("请输入你的数字:")
num2 = input("请输入第二个数字:")
print(num1 + num2)
当我们输入数字时得到的结果有问题·
请输入你的数字:100
请输入第二个数字:200
100200
这时候就清楚,输入的数字被认为是字符串
这时就应该进行数据类型的转换
# num1Str num2Str为字符串类型,num2Str num2Int 为int类型
num1Str = input("请输入第一个数字:")
num2Str = input("请输入第二个数字:")
num1Int = int(num1Str)
num2Int = int(num2Str)
print(type(num1Int), type(num1Str), type(num2Int), type(num2Str))
print(num1Int + num2Int)
输出结果为
请输入第一个数字:100
请输入第二个数字:200
<class 'int'> <class 'str'> <class 'int'> <class 'str'>
300
输出函数:print()
print()
是个最常见的函数,它在python解释器pycharm中,按住Ctrl
的同时用鼠标点击print
可以打开关于它的具体解释代码文件builtins.py
文件,内容如下:
def print(self, *args, sep=' ', end='\n', file=None):
我们仔细观察,其实可以分析出其sep=' '
是打印时用空格分开,end='\n'
是结尾换行
这就增加了打印的可玩性,我们可以进行下面的操作
x = 7
y = 8
print(x)
print(666, "hello", x, sep=',', end='\\')
print(888, "hello", y, sep='/', end='\\')
输出结果就改变了其打印间隔符号以及结尾的换行操作,运行结果如下
7
666,hello,7\888/hello/8\
7.字符串内置方法
具体实现效果如下
t = "Hello".upper()
print(t)
# 数字不能用
m = "Hello".lower()
print(m)
n = "李杰".startswith("李")
print(n)
b = "李杰".endswith("杰")
print(b)
c = "123".isdigit()
print(c)
v = " ad ".strip()
print(v)
c = "-".join(['北京', '上海', '武汉'])
print(c)
x = "北京-上海-深圳".split("-")
print(x)
z = "hi liu".find("liu")
print(z)
z = "hi liu".find("z")
print(z)
l = "hi liu".index("u")
print(l)
k = "hi liu".count("i")
print(k)
j = "hi liu".replace("liu", "li")
print(j)
结果如下:
HELLO
hello
True
True
True
ad
北京-上海-武汉
['北京', '上海', '深圳']
3
-1
5
2
hi li
我们可以利用.isdigit()
进行简单的判断是否为数字
numStr = input("请输入一个数字>>> ")
print(numStr.isdigit())
if numStr.isdigit():
num = int(numStr)
print(num * 2)
else:
print("输入有误,请输入一个纯数字!")
输出结果:
请输入一个数字>>> 21
True
42
可以通过.strip
去掉字符串中的空格,len
检查字符串长度
# 有空格也算有字符长度
user = input("请输入用户名: ")
user = user.strip()
print(user, len(user))
输出结果
请输入用户名: zhang 三
zhang 三 7
下面是.replace
的使用方法
inf = "i am li,li i very nice,li is a boy"
new_inf = inf.replace("li", "zhang", 2)
print(inf)
print(new_inf)
输出结果为
i am li,li i very nice,li is a boy
i am zhang,zhang i very nice,li is a boy
上述不同的代码有众多的使用方法,就不依次举例了。