Python入门笔记(一)(上)

简介: Python入门笔记(一)

第一章 初识python


1.1 python介绍


1. python是面向对象的


把一切东西看成是一个个对象,
比如人、耳机、鼠标、水杯等,他们各自都有属性,
比如:耳机是白色的,鼠标是黑色的,水杯是圆柱形的等等,
把这些对象拥有的属性变量和操作这些属性变量的函数打包成一个类来表示


面向对象有三大特性:封装,继承,多态。


封装:
将一类事物的属性和行为抽象成一个类,使其属性私有化,行为公开化,
提高了数据的隐秘性的同时,使代码模块化。这样做使得代码的复用性更高。
意义:
1. 将属性和方法放到一起做为一个整体,然后通过实例化对象来处理;
2. 隐藏内部实现细节,只需要和对象及其属性和方法交互就可以了;
3. 对类的属性和方法增加 访问权限控制。


继承:
在程序中,继承描述的是多个类之间的所属关系,
如果一个类A里面的属性和方法可以复用,则可以通过继承的方式,传递到类B里,
那么类A就是基类,也叫做父类;
类B就是派生类,也叫做子类。
继承进一步提高了代码的复用性。


多态:
所谓多态:定义时的类型和运行时的类型不一样,此时就成为多态 ,
多态的概念是应用于Java和C#这一类强类型语言中,而Python崇尚“鸭子类型”。


鸭子类型:虽然我想要一只"鸭子",但是你给了我一只鸟。 
但是只要这只鸟走路像鸭子,叫起来像鸭子,游泳也像鸭子,我就认为这是鸭子。


面向过程: 根据业务逻辑从上到下写代码


面向对象: 将数据与函数绑定到一起,进行封装,这样能够更快速的开发程序,减少了重复代码的重写过程,什么是面向对象可以看看这篇博客:链接


2. python的优点


a. 代码简短,具有较多的库可以直接使用


3. python的缺点


a. 运行速度慢


b. 代码不能加密


1.2 Python、pycharm、anaconda安装


1、解释器:安装python意思是安装python解释器


2、编辑器


3、包


  • 方案一:只安装python解释器


  • 方案二:只安装anaconda(自带很多库,还有编辑器,兼容python版本),但是anaconda版本不兼容


  • 方案三:安装python解释器+安装pycharm(编辑器)或者VsCode等


  • 方案四:安装Anaconda+安装pycharm或者VsCode等


1. pycharm安装


pycharm下载地址:添加链接描述


pycharm参考安装视频:视频链接



2. anaconda安装


anaconda下载地址:链接


anaconda参考安装博客博客


下载老版本的anaconda镜像源:链接


 


3. Python安装


python下载链接


添加链接描述



1.3 print()和input()


1. print()


print()函数将括号内的字符串显示在屏幕上


1.输出数字


print(5)
print(5.1)


2.输出字符串


格式1:print(‘内容’)


格式2:print(“内容”)


英文状态下的单引号、双引号都可


print('hello world')
print("hello")


不可 :printf;无括号


错误示例:


printf('hello world')
print"hello"


3.含有运算符的表达式


print(3+1)


4


多个输出用逗号隔开,逗号相当于输出空格


print("Hello", "abc")


Hello abc


+:拼接字符串


print('well water'+'river')       #字符型拼接


well waterriver


2. input()


函数input()的工作原理:


函数input()让程序暂停运行,等待用户输入一些文本。


获取用户输入后,python将其存储在一个变量里,以便使用


输入的内容为字符串型


例1


number = input("请输入一个整数:")  # 字符型
number = int(number)   # 字符型转化为整型
if number%2 == 0:
    print("The number " + str(number) + " is even.")   # 偶数
else:
    print("The number " + str(number) + " is odd.")    # 奇数


请输入一个整数:24
The number 24 is even.


1.4 保留字和标识符


1.保留字


一些被赋予特定的意义的


import keyword
print(keyword.kwlist)



2.标识符


一些自己命名的变量、函数、模块、类,叫做标识符


1.5 变量和常量


1.变量


message = 'hello world'    #message称为变量
print(message)


变量命名规则:


  1. 变量名只能包含字母、数字和下划线;变量名可以字母或下划线打头,但不能以数字开头。例如,可以message_1,但是不能1_message


  1. 变量名不能包含空格,但可以用下划线来分隔其中的单词。


  1. 不要将python关键字和函数名用作变量名


  1. 变量名应既简短又具有描述性,例如name比n好


  1. 慎用小写字母l和大写字母O,因为容易与数字1和0混乱


  1. 字母大小写不同


2.常量


所谓常量就是不能变的变量,比如常用的数学常数π就是一个常量。


在Python中,通常用全部大写的变量名表示常量


PI = 3.14159265359


1.6 三重引号


功能:


  1. 多行注释


  1. 多行赋值


'''多行注释1
    多行注释2'''
a = '''
    赋值行1
    赋值行2'''
print(a)


    赋值行1
    赋值行2


第二章 数据类型


2.1 数据类型(int、float、str、bool、None)


1. 整型int


int,可以表示正数、负数和零


十进制:默认的进制


二进制:以0b开头


八进制:以0o开头


十六进制:以0x开头


print('十进制', 118)
print(0b10101111)  # 二进制
print(0o176)       # 八进制
print(0xF)         # 十六进制


十进制 118
175
126
15


2. 浮点型float


a = 3.14
print(type(a))


<class 'float'>


注意: 这里表示小数的加减可能不精确,因为是用二进制存储


n1 = 1.1
n2 = 2.2
print(n1+n2)


3.3000000000000003


可以这样解决:


from decimal import Decimal
print(Decimal('1.1')+Decimal('2.2'))


3.3


科学计数法:记录比较大或者比较小的数,是浮点型


a = 15e10
print(a)
print(type(a))
b = 15e-10
print(b)
print(type(b))


150000000000.0
<class 'float'>
1.5e-09
<class 'float'>


3. 字符串型str


用单引号或者双引号或者三引号括起来,单双都可


print(type('hello'))
print(type("hello"))
print(type('''hello'''))


<class 'str'>
<class 'str'>
<class 'str'>


三引号定义的字符串可以分布在连续的多行


例1


print('''hello
world''')


hello
world


例2


a = 'hello'
b = "hello"
c = '''hello'''
print(a, id(a))
print(b, id(b))
print(c, id(c))


hello 2356647880624
hello 2356647880624
hello 2356647880624


4. 布尔类型


只有True和False两种


布尔值可以用and、or和not运算。


True、False可当0、1运算


a=True+True
print(a)
a=True*True
print(a)


2
1


5. 空值


空值是Python里一个特殊的值,用None表示。


None不能理解为0,因为0是有意义的,而None是一个特殊的空值。


2.2 数据类型转换函数


1. int():转换为整型


字符型转整型


a='520'       #字符型
print(int(a))


520              #整型


注意:字符串为小数串会报错


错误实例:


a='520.8'      #字符型
print(int(a))


注意:字符串为字母串也会报错


浮点型转整型:是直接去掉小数部分


print(int(-5.99))     #直接去掉小数部分,不是四舍五入
print(int(5.99))      #直接去掉小数部分


-5
5


布尔型转整型


print(int(True))
print(int(False))


1
0


2. float():转换为浮点型


字符型转浮点型


print(float('8'))


8.0


注意:字符串为非数字串会报错


整型转浮点型


print(float(8)) 


8.0


布尔型转字符串


print(float(True))
print(float(False))


1.0
0.0


3. str():转换为字符串型


a = 10
b = 198.8
c = False
print(str(a), str(b), str(c))
print(type(str(a)), type(str(b)), type(str(c)))


10 198.8 False
<class 'str'> <class 'str'> <class 'str'>



b=str(5e5)
print(b)        


500000.0



b=str(5e19)      #所以str不要当变量名
print(b)  


5e+19


4. bool():转换为布尔型


整数0,空字符,空列表,空元组,空字典,空集合都为False


其他均为True


例1整型


print(bool(0))
print(bool(1))
print(bool(2))


False
True
True


例2浮点


print(bool(0.0))
print(bool(0.1))
print(bool(1.0))
print(bool(2.0))


False
True
True
True


例3字符型


print(bool(''))
print(bool('0'))
print(bool('1'))
print(bool('abc'))


False
True
True
True


2.3 两个判断类型的内置函数:type()、isintance()


1. type()函数:可输出类型


格式:type(需要判断的)


例1:


a='520'          #字符型
print(type(a))
a=5.2            #浮点型
print(type(a))
a=True           #布尔类型
print(type(a))
a=5e5            #浮点型
print(type(a))


<class 'str'>
<class 'float'>
<class 'bool'>
<class 'float'>


2. isinstance()函数:可判断对象类型是否正确


格式:inistance(A,类型)


正确输出True,错误输出False


a='小甲鱼'
print(isinstance(a,str))
print(isinstance(a,int))
a=1
print(isinstance(a,bool))
print(isinstance(a,int))
a=True
print(isinstance(a,bool))


True
False
False
True
True


第三章 字符串操作


3.1 字符串的比较操作


运算符:>,>=,<,<=,==,!=


比较规则:


  • 首先比较两个字符串中的第一个字符,


如果相等就继续比较下一个字符,


依次比较下去,知道两个字符串中的字符不相等


  • 比较原理:


ord():字符转编码,实际上是比较编码大小


print('apple' > 'app')     # True
print('apple' > 'banana')  # False
print(ord('a'), ord('b'))  # 所以a < b
print(ord('杨'))
print(chr(26472))
"""== 与 is 的区别
== 比较的是 value
is 比较的是 ID是否相等"""
a = b = 'python'
c = 'python'     # a, b, c ID相同
print(a == b, b == c)
print(a is b, a is c)


True
False
97 98
26472
True True
True True


字符串不具有增删改的操作,但是可以切片,同列表相似


3.2 字符串切片操作


s = 'hello,Python'
s1 = s[:5]
s2 = s[6:]
s3 = '!'
newstr = s1 + s3 + s2
print(s1)
print(s2)
print(newstr)
print(s[::2])


hello
Python
hello!Python
hloPto


3.3 格式化字符串:{}、%、format()


1. {}作占位符


name = '张三'
age = 20
print('我叫{0},今年{1}岁了'.format(name, age))
print(f'我叫{name},今年{age}')   # 这里多了f


我叫张三,今年20岁了
我叫张三,今年20


例2:数量少可省略不写


print('{}'.format(3.1415926))
print('{0}'.format(3.1415926))


3.1415926
3.1415926


例3指定小数点后位数


# 总共三位数
print('{0:.3}'.format(3.1415926))
# 三位小数,这里加个f
print('{0:.3f}'.format(3.1415926))
# 零代表第一个,可省略不写
print('{:.3f}'.format(3.1415926))


3.14
3.142
3.142


例4:指定总宽度


# 宽度10,3位小数
print('{:10.3f}'.format(3.1415926))


3.142



print('{0} love {1}.{2}'.format('I','FishC','com'))         # 按索引顺序
print('{a} love {b}.{c}'.format(a='I',b='FishC',c='com'))   # 指定
print('{0} love {b}.{c}'.format('I',b='FishC',c='com'))     # 顺序+指定


I love FishC.com
I love FishC.com
I love FishC.com


例:


print('{0}{1}{2}'.format('你','是','猪'))
print('{a}{b}{c}'.format(a='你',b='是',c='猪'))
print('{0}{b}{c}'.format('你',b='是',c='猪'))


你是猪
你是猪
你是猪


2. %作占位符


name = '张三'
age = 20
print('我叫%s,今年%d岁' % (name, age))


我叫张三,今年20岁


例2


print('%d' % 99)
print('%10d' % 99)  # 宽度10
print('hellohello')


99
        99
hellohello


例3


# 表示小数点精度
print('%f' % 3.1415926)
# 保留三位小数
print('%.3f' % 3.1415926)
# 同时表示宽度精度
# 宽度是所有字符总宽度
print('%10.3f' % 3.1415926)  # 宽度10,精度小数点后三位


3.141593
3.142
     3.142


3.4 其他字符串操作符


符号 说明
%c 格式化字符及其 ASCII 码
%s 格式化字符串
%d 格式化整数
%o 格式化无符号八进制数
%x 格式化无符号十六进制数
%X 格式化无符号十六进制数(大写)
%f 格式化浮点数字,可指定小数点后的精度
%e 用科学计数法格式化浮点数
%E 作用同 %e,用科学计数法格式化浮点数
%g 根据值的大小决定使用 %f 或 %e
%G 作用同 %g,根据值的大小决定使用 %f 或者 %E


格式化操作符辅助命令


符号 说明
m.n m 是显示的最小总宽度,n 是小数点后的位数
- 用于左对齐
+ 在正数前面显示加号(+)
# 在八进制数前面显示 ‘0o’,在十六进制数前面显示 ‘0x’ 或 ‘0X’
0 显示的数字前面填充 ‘0’ 取代空格


1. %c :格式化字符及其 ASCII 码


print('%c' % 97)
print('%c %c %c' % (97,98,99))


a
a b c


2. %d :格式化整数


print('%d + %d = %d' % (4,5,4+5))


4 + 5 = 9


3. %o :格式化无符号八进制数


print('%o' % 10)              #十进制转换八进制


12


4. %x :格式化无符号十六进制数


%X :格式化无符号十六进制数(大写)


print('%x' % 10)     #十进制转换十六进制
print('%X' % 10)
print('%X' % 160)    #十进制转换十六进制


a
A
A0


5. %f:格式化浮点数字,可指定小数点后的精度


print('%f' % 27.658)  #指定小数点后的精度,float


27.658000


6. %e :用科学计数法格式化浮点数


%E :作用同 %e,用科学计数法格式化浮点数


print('%e' % 27.658)  #科学技术法技术
print('%E' % 27.658)


2.765800e+01
2.765800E+01


7. %g :根据值的大小决定使用 %f 或 %e


%G:作用同 %g,根据值的大小决定使用 %f 或者 %E


print('%g' % 27.658)  #根据值的大小决定使用 %f 或 %e


27.658



print('%5.1f' % 27.658)  #5为长度; m.n m 是显示的最小总宽度,n 是小数点后的位数
print('%.2e' % 27.658)   #小数点后两位
print('%10d' % 5)        #十个空格
print('%+d' % 5)


27.7
2.77e+01
         5
+5


例2


print('{{0}}'.format('不打印'))
print('{0:.1f}{1}'.format(27.658,'GB'))


{0}
27.7GB


3.5 转义字符


python的转义字符及其含义


符号 说明
\ ’ 单引号
\" 双引号
\a 发出系统响铃声
\b 退格符
\n 换行符
\t 横向制表符(TAB)
\v 纵向制表符
\r 回车符
\f 换页符
\o 八进制数代表的字符
\x 十六进制数代表的字符
\0 表示一个空字符
\\ 反斜杠


1. \n:换行


print('Languages:\npython\nC\nJavaScript')       #换行


Languages:
python
C
JavaScript


2. \t :制表符(TAB),即添加空格


它会用空格补齐不足四个的


print('hello\tworld')   # 四个制表位
print('helloo\tworld')
print('hellooo\tworld')
print('helloooo\tworld')


hello world
helloo  world
hellooo world
helloooo  world


例:制表符+换行符


print('Languages:\n\tpython\n\tC\n\tJavaScript')


Languages:
  python
  C
  JavaScript


3. \ r:回车符


print('hello\rworld')  # return回车,world覆盖了hello


world


4. \ b:退格符


print('hello\bworld')  # 退一个格,所以o没了


hellworld


5. \ ':单引号


print('老师说:\'大家好\'')


老师说:'大家好'


例2:


print('let\'s go')


let's go


错误示例:


print('let's go')


6. \ \ :反斜杠


print("http:\\www.baidu.com")    # 引号内两个反斜杠相当于一个
print("http:\\\\www.baidu.com")


http:\www.baidu.com
http:\\www.baidu.com


7. 原字符:r


原字符,不希望字符串中的转义字符起作用,就是在字符串之前加上r或R


print(r'hello\nworld')


hello\nworld


注意事项:最后一个字符不能是反斜杠


错误实例:


print(r'hello\nworld\')


正确实例:


print(r'hello\nworld\\')


3.6 字符串函数


函数 作用
capitalize() 字符串中第一个字符若为小写字母改为大写
casefold() 将所有字符改为小写
center(width) 将字符串居中,并使用空格填充至长度 width 的新字符串
count(sub[, start[, end]]) 返回 sub 在字符串里边出现的次数,start 和 end 参数表示范围,可选。
encode(encoding=‘utf-8’, errors=‘strict’) 以 encoding 指定的编码格式对字符串进行编码。
endswith(sub[, start[, end]]) 检查字符串是否以 sub 子字符串结束,如果是返回 True,否则返回 False。start 和 end 参数表示范围,可选。
expandtabs([tabsize=8]) 把字符串中的 tab 符号(\t)转换为空格,如不指定参数,默认的空格数是 tabsize=8。
find(sub[, start[, end]]) 检测 sub 是否包含在字符串中,如果有则返回索引值,否则返回 -1,start 和 end 参数表示范围,可选。
index(sub[, start[, end]]) 跟 find 方法一样,不过如果 sub 不在 string 中会产生一个异常。
isalnum() 如果字符串至少有一个字符并且所有字符都是字母或数字则返回 True,否则返回 False。
isalpha() 如果字符串至少有一个字符并且所有字符都是字母则返回 True,否则返回 False。
isdecimal() 如果字符串只包含十进制数字则返回 True,否则返回 False。
isdigit() 如果字符串只包含数字则返回 True,否则返回 False。
islower() 如果字符串中至少包含一个区分大小写的字符,并且这些字符都是小写,则返回 True,否则返回 False。
isnumeric() 如果字符串中只包含数字字符,则返回 True,否则返回 False。
isspace() 如果字符串中只包含空格,则返回 True,否则返回 False。
istitle() 如果字符串是标题化(所有的单词都是以大写开始,其余字母均小写),则返回 True,否则返回 False。
isupper() 如果字符串中至少包含一个区分大小写的字符,并且这些字符都是大写,则返回 True,否则返回 False。
join(sub) 以字符串作为分隔符,插入到 sub 中所有的字符之间。
ljust(width) 返回一个左对齐的字符串,并使用空格填充至长度为 width 的新字符串。
lower() 转换字符串中所有大写字符为小写。
lstrip() 去掉字符串左边的所有空格
partition(sub) 找到子字符串 sub,把字符串分成一个 3 元组 (pre_sub, sub, fol_sub),如果字符串中不包含 sub 则返回 (‘原字符串’, ‘’, ‘’)
replace(old, new[, count]) 把字符串中的 old 子字符串替换成 new 子字符串,如果 count 指定,则替换不超过 count 次。
rfind(sub[, start[, end]]) 类似于 find() 方法,不过是从右边开始查找。
rindex(sub[, start[, end]]) 类似于 index() 方法,不过是从右边开始。
rjust(width) 返回一个右对齐的字符串,并使用空格填充至长度为 width 的新字符串。
rpartition(sub) 类似于 partition() 方法,不过是从右边开始查找。
rstrip() 删除字符串末尾的空格。
split(sep=None, maxsplit=-1) 不带参数默认是以空格为分隔符切片字符串,如果 maxsplit 参数有设置,则仅分隔 maxsplit 个子字符串,返回切片后的子字符串拼接的列表。
splitlines(([keepends])) 在输出结果里是否去掉换行符,默认为 False,不包含换行符;如果为 True,则保留换行符。
startswith(prefix[, start[, end]]) 检查字符串是否以 prefix 开头,是则返回 True,否则返回 False。start 和 end 参数可以指定范围检查,可选。
strip([chars]) 删除字符串前边和后边所有的空格,chars 参数可以定制删除的字符,可选。
swapcase() 翻转字符串中的大小写。
title() 返回标题化(所有的单词都是以大写开始,其余字母均小写)的字符串。
translate(table) 根据 table 的规则(可以由 str.maketrans(‘a’, ‘b’) 定制)转换字符串中的字符。
upper() 转换字符串中的所有小写字符为大写。
zfill(width) 返回长度为 width 的字符串,原字符串右对齐,前边用 0 填充。


1. 字符串查询方法


  • .index():查找子串第一次出现的索引值,不存在便报错


  • .rindex():查找子串最后一次出现的索引值,不存在便报错


  • .find():查找子串第一次出现的索引值,不存在返回 -1


  • .rfind():查找子串最后一次先hu的索引值,不存在返回 -1


s = 'hello.hello'
print(s.index('lo'))
print(s.find('lo'))
print(s.rindex('lo'))
print(s.rfind('lo'))


3
3
9
9


总结:index索引不存在的会报错,find索引不存在的会报-1.


2. 字符串大写转换


  • .upper():把字符串所有字符都转换成大写字母


  • .lower():把字符串中所有字符都转成小写字母


  • .swapcase():把字符串所有的大写字母转成小写字母,把所有的小写字母都转成大写字母


  • .capitalize():把第一个字符转成大写,把其余字符转成小写


  • .title():把每个单词的第一个字符转换为大写,把每个单词的剩余字符转成小写


暂时的,不覆盖原来的变量


例1:upper()、lower()


name = 'Ada Lovelace'
print(name.upper())   #输出字母全改大写
print(name.lower())   #全小写


ADA LOVELACE
ada lovelace


例2


s = 'hello.hello'
a = s.upper()
b = s.lower()
print(a, id(a))
print(s, id(s))
print(b, id(b))
print(s, id(s))
print(b == s)
print(b is s)


HELLO.HELLO 2409263131824
hello.hello 2409263073264
hello.hello 2409263115952
hello.hello 2409263073264
True
False


例3:.swapcase()


s2 = 'hello,Python'
print(s2.swapcase())
print(s2)


HELLO,pYTHON
hello,Python


例4:.capitalize()


str1='xiaoxie'
print(str1.capitalize())
str2='123xiaoxie'   #数字不行
print(str2.capitalize())
str3='DAxie'
print(str3.capitalize())


Xiaoxie
123xiaoxie
Daxie


例5: .title()


name = 'ada lovelace'
print(name.title())


Ada Lovelace


在name.title()中,name后面的句点(.)让python对变量name执行title()指定的操作


3. 字符串对齐


  • .center():居中对齐,第一个参数指定宽度,第二个参数指定填充符,第二个参数是可选的,默认是空格,如果设置宽度小于实际宽度则返回原字符串


  • .ljust():左对齐,第一个参数指定宽度,第二个参数指定填充符,第二参数是可选的,默认是空格,如果设置宽度小于实际宽度则返回原字符串


  • rjust():右对齐,第一个参数指定宽度,第二个参数指定填充符,第二参数是可选的,默认是空格,如果设置宽度小于实际宽度则返回原字符串


  • zfill():右对齐,左边用0填充,该方法只接收一个参数,用于指定字符串的宽度,如果指定的宽度小于等于字符串的长度,返回字符串本身


例1:.center()


s = 'hello.Python'        # 长度12
"""居中"""
print(s.center(20, '*'))  # 居中对齐,宽度20,填充符*


****hello.Python****


例2:.ljust()


s = 'hello.Python'        # 长度12
"""左对齐"""
print(s.ljust(20, '*'))   # 左对齐
print(s.ljust(10))        # 10 < 12,返回原字符


hello.Python********
hello.Python


例3:rjust()


s = 'hello.Python'        # 长度12
"""右对齐"""
print(s.rjust(20, '*'))
print(s.rjust(20))        # 默认填充空格
print(s.rjust(10))


********hello.Python
        hello.Python
hello.Python


例4:zfill()


s = 'hello.Python'        # 长度12
"""右对齐,用0填充"""
print(s.zfill(20))
print(s.zfill(10))        # 返回原字符
print('-8941'.zfill(8))


00000000hello.Python
hello.Python
-0008941


4. startswith()和endswith()


  • startswith()返回True,则所调用的字符串以该方法开始


  • endswith()返回True,则所调用的字符串以该方法结束


a = 'Hello World'.startswith("Hello")
b = 'Hello World'.startswith("abc")
c = 'Hello World'.endswith("World")
d = 'Hello World'.endswith("abc")
print(a, b, c, d)


True False True False


5. join()和split()


  • join()将字符串连接起来


  • split()从字符串左边,将字符串劈分,默认空格劈分,返回一个列表


  • rsplit()从字符串右边,将字符串劈分,默认空格劈分,返回一个列表


a = ','.join(['cats', 'rats', 'bats'])
b = ' '.join(['cats', 'rats', 'bats'])
c = 'A'.join(['cats', 'rats', 'bats'])
print(a + '\n' + b + '\n' + c)


cats,rats,bats
cats rats bats
catsAratsAbats


'字符串'.split(sep='劈分符', maxsplit=最大劈分次数)


.split()


  1. 从字符串的左边开始劈分,默认的劈分字符是空字符串,返回的值都是一个列表


  1. 通过参数sep指定劈分字符串的劈分符


  1. 通过参数maxsplit指定劈分字符串时的最大劈分次数,在经过最大次数劈分之后,剩余的子串会单独作为一部分


.rsplit()


  1. 从字符串的右边开始劈分,默认的劈分字符是空字符串,返回的值都是一个列表


  1. 通过参数sep指定劈分字符串的劈分符


  1. 通过参数maxsplit指定劈分字符串时的最大劈分次数,在经过最大次数劈分之后,剩余的子串会单独作为一部分


s = 'hello world Python'
list1 = s.split()
print(list1)
s1 = 'hello|world|Python'
print(s1.split(sep='|'))
print(s1.split(sep='|', maxsplit=1))  # 劈分一次
print('-----------------')
"""rsplit从右侧开始劈分"""
print(s.rsplit())
print(s1.rsplit('|'))
print(s1.rsplit(sep='|', maxsplit=1))  # 从右边劈分一次


['hello', 'world', 'Python']
['hello', 'world', 'Python']
['hello', 'world|Python']
-----------------
['hello', 'world', 'Python']
['hello', 'world', 'Python']
['hello|world', 'Python']


6. isX字符串方法


  • isalpha()返回True,如果字符串只包含字母,并且非空


  • isalnum()返回True,如果字符串只包含字母和数字,并且非空


  • isdecimal()返回True,如果字符串只包含数字字符,并且非空


  • isspace()返回True,如果字符串只包含空格、制表符和换行,并且非空


  • istitle()返回True, 如果字符串只包含以大写开头、后面都是小写字母的单词


  • .isidentifier():判断指定的字符串是不是合法的标识符


  • isnumeric():判断指定的字符串是否全部由数字组成


  • islower()


例1:.isidentifier()


"""判断指定的字符串是不是合法的标识符"""
s = 'hello.python'
print('1.', s.isidentifier())          # False
print('2.', 'hello'.isidentifier())    # True
print('3.', '张三'.isidentifier())      # True
print('4.', '张三_123'.isidentifier())  # True


1. False
2. True
3. True
4. True


例2: .isspace()


"""判断指定的字符串是否全部由空白字符组成(回车、换行、水平制表符)"""
print('5.', '\t'.isspace())            # True,制表符


5. True


例3:.isalpha()


'''判断指定的字符串是否全部由字母组成'''
print('6.', 'abc'.isalpha())           # True,全是字母
print('7.', '张三'.isalpha())           # True,全是汉字这里也对的
print('8.', '张三1'.isalpha())          # False,汉字加数字不行


6. True
7. True
8. False


例4:.isdecimal()


判断指定的字符串是否全部由十进制的数字组成


'''判断指定的字符串是否全部由十进制的数字组成'''
print('9.', '123'.isdecimal())         # True,十进制数字
print('10.', '123四'.isdecimal())       # False,汉字不行
print('11.',  'ⅡⅡⅡ'.isdecimal())     # False,罗马数字不行


9. True
10. False
11. False


例5: isnumeric()


判断指定的字符串是否全部由数字组成


'''判断指定的字符串是否全部由数字组成'''
print('12.', '123'.isnumeric())       # True,全是数字
print('13.', '123四'.isnumeric())     # True,有汉字也是对滴
print('14.',  'ⅡⅡⅡ'.isnumeric())    # True,罗马数字不行


12. True
13. True
14. True


例6: isallnum()


判断指定的字符串是否全部由字母和数字组成


'''判断指定的字符串是否全部由字母和数字组成'''
print('15.', 'abc'.isalnum())        # True,全是字母
print('16.', '张三abc'.isalnum())     # True,有汉字也是对滴
print('17.', 'abc!'.isalnum())      # False,感叹号不行


15. True
16. True
17. False


例7:islower()、istitle()


str='小甲鱼'
print(str.islower())
str1 = 'Abc'
print(str1.istitle())


False
True


7. 字符串替换


.replace():字符串的替换


  • 第一个参数指定被替换的子串,


  • 第二个参数指定替换子串的字符串


该方法返回替换后得到的字符串,替换前的字符串不发生变化,


调用该方法时可以通过第三个参数指定最大替换次数。


s = 'hello, python'
print(s.replace('python', 'Java'))
s1 = 'hello, python, python, python'
print(s1.replace('python', 'Java', 2))  # 这里指定替换次数


hello, Java
hello, Java, Java, python


8. 字符串删除空格字符


  • rstrip():删除右边,right,暂时的


  • lstrip():删除左边,left


  • strip():删除两边


例1


>>> favorite_language = 'python '
>>> favorite_language
'python '
>>> favorite_language.rstrip()   #删除右边空格字符
'python'
>>> favorite_language            #暂时的删除,访问还是原来值
'python '


例2


>>> favorite_language = 'python '
>>> favorite_language = favorite_language.rstrip()   #重新赋值覆盖变量
>>> favorite_language
'python'


例3


>>> favorite_language = ' python '   #两边都有空格
>>> favorite_language.rstrip()       #删除右边
' python'
>>> favorite_language.lstrip()       #删除左边
'python '
>>> favorite_language.strip()        #删除两边


9. 其他


casefold():所有字符改小写


str1 = 'DAXIE'
print(str1.casefold())


daxie


count(sub[, start[, end]]):


返回 sub 在字符串里边出现的次数,start 和 end 参数表示范围,可选。


str1='xiapxie'
print(str1.count('xi'))   #两次


2


encode(encoding=‘utf-8’, errors=‘strict’)


以 encoding 指定的编码格式对字符串进行编码。


endswith(sub[, start[, end]])


检查字符串是否以 sub 子字符串结束,如果是返回 True,否则返回 False。start 和 end 参数表示范围,可选。


str1='xiapxie'
print(str1.endswith('xi'))
print(str1.endswith('xie'))


False
True


expandtabs([tabsize=8])


把字符串中的 tab 符号(\t)转换为空格,如不指定参数,默认的空格数是 tabsize=8。


str3 = 'I\tlove\tyou'
print(str3.expandtabs())


I       love    you


str1='ab111de'
print(str1.translate(str.maketrans('1','c')))


abcccde
目录
相关文章
|
4天前
|
数据采集 存储 XML
Python爬虫定义入门知识
Python爬虫是用于自动化抓取互联网数据的程序。其基本概念包括爬虫、请求、响应和解析。常用库有Requests、BeautifulSoup、Scrapy和Selenium。工作流程包括发送请求、接收响应、解析数据和存储数据。注意事项包括遵守Robots协议、避免过度请求、处理异常和确保数据合法性。Python爬虫强大而灵活,但使用时需遵守法律法规。
|
5天前
|
Python
深入理解Python装饰器:从入门到实践####
本文旨在通过简明扼要的方式,为读者揭开Python装饰器的神秘面纱,从基本概念、工作原理到实际应用场景进行全面解析。不同于常规的摘要仅概述内容概要,本文将直接以一段精炼代码示例开篇,展示装饰器如何优雅地增强函数功能,激发读者探索兴趣,随后深入探讨其背后的机制与高级用法。 ####
33 11
|
2天前
|
存储 Python
Python编程入门:打造你的第一个程序
【10月更文挑战第39天】在数字时代的浪潮中,掌握编程技能如同掌握了一门新时代的语言。本文将引导你步入Python编程的奇妙世界,从零基础出发,一步步构建你的第一个程序。我们将探索编程的基本概念,通过简单示例理解变量、数据类型和控制结构,最终实现一个简单的猜数字游戏。这不仅是一段代码的旅程,更是逻辑思维和问题解决能力的锻炼之旅。准备好了吗?让我们开始吧!
|
2天前
|
机器学习/深度学习 人工智能 TensorFlow
人工智能浪潮下的自我修养:从Python编程入门到深度学习实践
【10月更文挑战第39天】本文旨在为初学者提供一条清晰的道路,从Python基础语法的掌握到深度学习领域的探索。我们将通过简明扼要的语言和实际代码示例,引导读者逐步构建起对人工智能技术的理解和应用能力。文章不仅涵盖Python编程的基础,还将深入探讨深度学习的核心概念、工具和实战技巧,帮助读者在AI的浪潮中找到自己的位置。
|
1天前
|
设计模式 缓存 开发框架
Python中的装饰器:从入门到实践####
本文深入探讨了Python中装饰器的工作原理与应用,通过具体案例展示了如何利用装饰器增强函数功能、提高代码复用性和可读性。读者将学习到装饰器的基本概念、实现方法及其在实际项目开发中的实用技巧。 ####
11 3
|
5天前
|
机器学习/深度学习 数据采集 数据可视化
Python在数据科学中的应用:从入门到实践
本文旨在为读者提供一个Python在数据科学领域应用的全面概览。我们将从Python的基础语法开始,逐步深入到数据处理、分析和可视化的高级技术。文章不仅涵盖了Python中常用的数据科学库,如NumPy、Pandas和Matplotlib,还探讨了机器学习库Scikit-learn的使用。通过实际案例分析,本文将展示如何利用Python进行数据清洗、特征工程、模型训练和结果评估。此外,我们还将探讨Python在大数据处理中的应用,以及如何通过集成学习和深度学习技术来提升数据分析的准确性和效率。
|
2天前
|
机器学习/深度学习 数据挖掘 Python
Python编程入门——从零开始构建你的第一个程序
【10月更文挑战第39天】本文将带你走进Python的世界,通过简单易懂的语言和实际的代码示例,让你快速掌握Python的基础语法。无论你是编程新手还是想学习新语言的老手,这篇文章都能为你提供有价值的信息。我们将从变量、数据类型、控制结构等基本概念入手,逐步过渡到函数、模块等高级特性,最后通过一个综合示例来巩固所学知识。让我们一起开启Python编程之旅吧!
|
3天前
|
机器学习/深度学习 数据挖掘 开发者
Python编程入门:理解基础语法与编写第一个程序
【10月更文挑战第37天】本文旨在为初学者提供Python编程的初步了解,通过简明的语言和直观的例子,引导读者掌握Python的基础语法,并完成一个简单的程序。我们将从变量、数据类型到控制结构,逐步展开讲解,确保即使是编程新手也能轻松跟上。文章末尾附有完整代码示例,供读者参考和实践。
|
4天前
|
人工智能 数据挖掘 程序员
Python编程入门:从零到英雄
【10月更文挑战第37天】本文将引导你走进Python编程的世界,无论你是初学者还是有一定基础的开发者,都能从中受益。我们将从最基础的语法开始讲解,逐步深入到更复杂的主题,如数据结构、面向对象编程和网络编程等。通过本文的学习,你将能够编写出自己的Python程序,实现各种功能。让我们一起踏上Python编程之旅吧!
|
5天前
|
数据采集 机器学习/深度学习 人工智能
Python编程入门:从基础到实战
【10月更文挑战第36天】本文将带你走进Python的世界,从基础语法出发,逐步深入到实际项目应用。我们将一起探索Python的简洁与强大,通过实例学习如何运用Python解决问题。无论你是编程新手还是希望扩展技能的老手,这篇文章都将为你提供有价值的指导和灵感。让我们一起开启Python编程之旅,用代码书写想法,创造可能。