Python入门(一)
目录
一、Python数据类型
1.字面量
2.注释
3.变量
4.数据类型
二、 运算符
1.数据类型之间的相互转换
2 算数运算符
3、逻辑运算符
三、判断语句 if
四、循环
1、while循环
2、for循环
2.1 for...else...
五、格式化字符串
1.字符串
1.1创建字符串的方式(字符串赋值):
1.2通过input()方法
2.字符串拼接
方式1:使用加号。
方式2: 使用f ' '
3.字符串操作
3.1 下标
3.2 切片
4.字符串方法
find():
replace():替换
split(): 按照指定字符分隔字符串
大小写转换
去掉字符串空格
判断字符串是否以某个字符串为前缀或后缀
判断某个字符串中是否包含另一个字符串
一、Python数据类型
1.字面量
在计算机科学中,字面量(literal)是用于表达源代码中一个固定值的表示法(notation)
通俗的说就是: 写在代码中的固定的值, 叫做字面量.
常见的字面量类型: 整数, 浮点数, 字符串.
2.注释
在python使用 # 作为对代码的解释, 即注释.
在python中可以使用三引号(""" """)来作为多行注释. (单的双的都行)
还有todo注释,了解即可
3.变量
在python中定义变量是不需要指定类型的.
变量名称 = 值 等号(=) 赋值, 将等号右边的值赋予等号左边的变量.
变量名称即: 变量名, 代表变量本身.
变量的值是可以改变的.
变量是可以重复使用的.
变量名的命名规则: 变量名要起的见名知意
变量名必须以字母或下划线字符开头
变量名称不能以数字开头,但是可以以数字结尾
变量名只能包含字母数字字符和下划线(A-z、0-9 和 _)(约定, 并不是强制.)
变量名称区分大小写(age、Age 和 AGE 是三个不同的变量)
不可使用关键词作为变量名
4.数据类型
类型 | 说明 |
字符串(string) | 描述文本的一种数据类型, 由任意的字符组成 |
整型(int) | 整数 如 1, 2, 3, 4… |
浮点型(float) | 浮点数, 如 12.34, 3.14 |
布尔型(bool) | 即真和假, 在python中True表示真, False表示假, 非0即真 |
复数型(complex) | 主要用于科学计算 |
列表(list) | 有序的可变的元素序列, 使用最频繁的一种类型 |
元组(tuple) | 有序的不可变的元素序列 |
集合(set) | 无序的不重复集合 |
字典(dict) | 无序的key-value集合 |
以上的数据类型包含的python的所有的数据类型, 后面会详细讲解字符串、列表、字典、元组
等类型
那么如何查看数据类型呢?
在python中提供了一个type()
方法查看数据类型.
二、 运算符
1.数据类型之间的相互转换
函数 | 说明 |
---|---|
int(a) | 将a转换为一个整数 |
float(a) | 将a转换为一个浮点数 |
str(a) | 将a转换为一个字符串 |
PS: 任何类型都可以转换成字符串.
但是不是所有类型都可以转换成int.
int是可以转换为float的.
float也可以转换为int,但是会丢失精度.
2 算数运算符
算数运算符 | 说明 | 示例 |
---|---|---|
+ | 表示2个元素相加, 可用于字符串的拼接 | 2+3 |
* | 表示2个元素相乘, 字符串可以和数字相乘 | 2*3 |
- | 表示2个元素相减 | 3-2 |
/ | 表示2个元素相除 | 4 / 2 |
// | 数字之间取整除 | 9 // 2 = 4 |
% | 数字之间取余数 | 9 % 2 = 1 |
** | 幂 | 2**4 |
PS: 字符串可以和数字相乘:
a = '666' * 3
print(a) # 666666666
特别注意的三个赋值运算符
%= | 取余赋值运算 | a %= b 等效于 a = a % b |
**= | 幂赋值运算 | a **= b 等效于 a = a ** b |
相当于a的b次方
//= | 整除赋值运算 | a //= b 等效于 a = a // b |
3、逻辑运算符
运算符 | 逻辑表达式 | 描述 | 实例 |
and | x and y | 布尔 " 与 " :如果 x 为 False , x and y 返回 False ,否则返回 y 的值 | True and False ,返回 False,有一个假即为假 |
or | x or y | 布尔 " 或 " :如果 x 是 True ,它返回 True ,否则 返回 y 的值 | True or False, 返回 True-- 有 一个真即为真 |
not | not x | 布尔 " 非 " :如果 x 为 True ,它返回 False 。如果 x 为 False ,它返回 True 。 | not True ,返回 False , not False ,返回 True |
三、判断语句 if
if 条件:条件成立执行的代码1条件成立执行的代码2......
if True:print('条件成立执行的代码1')print('条件成立执行的代码2')
# 下方的代码没有缩进到if语句块,所以和if条件无关
print('我是无论条件是否成功,都要执行的代码')
if 条件:条件成立执行的代码1条件成立执行的代码2......
else:#隐藏条件条件不成立执行的代码1条件不成立执行的代码2......
if 条件1:条件成立执行的代码1条件成立执行的代码2....
elif 条件2:条件成立执行的代码1条件成立执行的代码2....
elif 条件3:----
elif 条件4:-----
else: # else写不写都可以 语法上面不强制必须要写else
以上条件都不成立执行的代码
四、循环
1、while循环
while 条件:条件满足时,做的事情 1条件满足时,做的事情 2条件满足时,做的事情 3...(省略)...
2、for循环
for 临时变量 in 序列:重复执行的代码1重复执行的代码2...str1 = 'testfan'
for i in str1:print(i)
2.1 for...else...
for 临时变量 in 序列:重复执行的代码......
else:循环正常结束之后要执行的代码
五、格式化字符串
1.字符串
字符串是 Python 中最常用的数据类型. 在python中, 引号之间的字符, 都是字符串.
1.1创建字符串的方式(字符串赋值):
单引号.
双引号.
三引号: 之前在注释的章节, 在python中三引号可以作为多行注释来用, 但是三引号内的本质上还是字符串, 如果使用变量去接受这个三引号的值, 那么这个变量的类型就是str
其中三引号可以用来定义内容有多行的字符串:
letter = '''刘总:
您好!
您简直是个大帅哥
2025年5月6日'''
print(letter)
1.2通过input()方法
username = input('请输入用户名:')
print(type(username))
print(f"您输入的名字是{username}")
2.字符串拼接
方式1:使用加号。
var1 = '字符串'
var2 = str(1)
print(var1 + var2)
print(type(var1 + var2))
经典误区:
print 打印时使用 , (逗号)不是字符串合并print ( ' 你 ',' 好 ' )
方式2: 使用f ' '
(需要python解释器是3.6之后的版本)
var = '字符串'
name = f'我是{var}'
print(name)
print(type(name))
3.字符串操作
不可变类型(数字,字符串,元组):不支持原址(内存地址)修改
3.1 下标
# 取到不同下标对应的数据
name = 'testfan'
print(name[0]) #t
print(name[1]) #e
print(name[2]) #s
#下标也可以写负数
print(name[-1]) #n
print(name[-2]) #a
3.2 切片
语法字符串 [ 开始位置下标 : 结束位置下标 : 步长 ]注意:选取的区间属于左闭右开型,即从 " 起始 " 位开始,到 " 结束 " 位的前一位结束(不包含结束位本身 ) ,如果不写步长默认是 1.步长是控制方向的,正数从左往右取,负数是从右到左取 我们以字符串为例讲解
s="testfun"
print(s[0]) #第一个字符t
print(s[-1]) #最后一个字符 n -1下表代表最后一个索引
print(s[::1]) #testfun
print(s[::-1]) #nuftset 反转
print(s[1:6:1]) #中间5个 estfu
print(s[-1:-3:-1])#nu
小结:
1.[:] 提取从开头(默认位置 0 )到结尾(默认位置 -1 )的整个字符串2.[start:] 从 start 提取到结尾3.[:end] 从开头提取到 end-14.[start:end] 从 start 提取到 end-15.[::-1] 逆序
4.字符串方法
find():
1.语法字符串序列 .find ( 子串,开始位置下标,结束位置下标 )注意:开始和结束位置下标可以省略,表示在整个字符串序列当中查找
s='hello world and testfan and shamo'
#我想找到这个字符串中and单词第一次出现的位置
index=s.find('and')
print(index) #12
#找到后半段第一次出现and的位置
index=s.find('and',int(len(s)/2),-1)
print(index) #24
#找到第二次出现and的位置
index=s.rfind('and')
print(index) #24print(str.find('ands')) # -1
replace():替换
语法
字符串序列.replace(旧子串,新子串,替换次数)
注意:替换次数如果超出子串出现的次数,则替换次数为该子串出现的次数
s='hello world and testfan and shamo'
#把and替换成or
s1=s.replace('and','or') #替换会生成新的字符串,不会直接修改原始字符串
print(s1)
#只替换第一个and
s2=s.replace('and','or',1) #1代表替换次数 从左往右
print(s2)
split(): 按照指定字符分隔字符串
语法
字符串序列 . split ( 分割字符, num )注意: num 表示的是分隔字符出现的次数,即将来返回数据个数为 num+1
#把字符串拆分成一个个单词
s_list=s.split() #默认按照空格进行分割 得到结果是一个列表
print(s_list)
s='hello*world*and*testfan*and*shamo'
#按照*分割
s_list=s.split('*')
print(s_list)
s_list=s.split('*',3) #最大分割次数为3
print(s_list)
大小写转换
s='uP'
s=s.lower() #转小写
print(s) #up
s=s.upper()
print(s) #UP
去掉字符串空格
s=' 刘bobo '
s1=s.strip() #去掉空格
print(s1)
s2=s.lstrip() #去掉左边空格
print(s2)
s3=s.rstrip() #去掉右边空格
print(s3)
s='****刘bobo***'
s4=s.strip('*')
print(s4)
判断字符串是否以某个字符串为前缀或后缀
name='张三三'
print(name.startswith('张')) #判断字符串是否以某个字符串为前缀
#判断后缀
name='张三三_码同学'
print(name.endswith('_码同学'))
判断某个字符串中是否包含另一个字符串
name='张三三'
print('张' in name)
print('张' not in name)