Python基础知识4

字符串的常用函数API(Python 的字符串常用内建函数)(详细版)

capitalize()、upper()、isupper()、lower()、islower()、swapcase()、title()、istitle()

1.capitalize():将字符串的第一个字符转换为大写

str="alibaba is very nice"
str1=str.capitalize() # 首字母大写,不会改变原值,而是返回一个新值
print(str) # alibaba is very nice 
print(str1) # Alibaba is very nice

2.upper():转换字符串中的小写字母为大写

3.isupper():用于检测字符串中的所有字符是否都是大写字母,并且都是大写,则返回 True,否则返回 False

str = "aBc"
str1 = str.upper()  # 字母全部大写 变量名调用函数
print(str1)  # ABC
print(str.isupper()) #False
print(str1.isupper()) #True

4.lower():转换字符串中所有大写字符为小写.

5.islower():用于检测字符串中的所有字符是否都是小写字母,字符都是小写,则返回 True,否则返回 False.

str="aBc"
str1=str.lower() #字母全部小写
print(str1) #abc
str2="ASD"
print(str2.islower()) #False

6.swapcase():将字符串中大写转换为小写,小写转换为大写

str="asCFdd"
result=str.swapcase()
print(result)#AScfDD

7.title():返回"标题化"的字符串,就是说所有单词都是以大写开始,其余字母均为小写

8.istitle():如果字符串是标题化的(见 title())则返回 True,否则返回 False。

str="my name is jack"
result=str.title()
print(result) #My Name Is Jack
print(result.istitle()) #True
print(str.istitle())# False 判断是不是标题,每个字母首字母大写

len(string)

1.len(string):返回字符串长度

str="文心一言知识增强大语言模型 百度全新一代知识增强大语言模型"
print(len(str)) #29

2.count(str, beg= 0,end=len(string)):返回 str 在 string 里面出现的次数,如果 beg 或者 end 指定则返回指定范围内 str 出现的次数

 str = "文心一言知识增强大语言模型 百度全新一代知识增强大语言模型"
 str1=str.count("语言")
 print(str1) # 2 str字符串中出现了多少次语言

center(width, fillchar)、ljust(width, fillchar)、rjust(width, fillchar)

1.center(width, fillchar):返回一个指定的宽度 width 居中的字符串,fillchar 为填充的字符,默认为空格。

2.ljust(width, fillchar):返回一个原字符串左对齐,并使用 fillchar 填充至长度 width 的新字符串,fillchar 默认为空格。

3.rjust(width, fillchar):返回一个原字符串右对齐,并使用fillchar(默认空格)填充至长度 width 的新字符串

str="abc"
str2=str.center(20) #不填参数,默认为空字符串进行填充
print(str2,len(str2)) #        abc          20 打印填充后的结果和填充后的长度

str2=str.center(20,"0") #填充字符为0
print(str2,len(str2))# 00000000abc000000000 20 

str2=str.center(4,"*")

print(str2,len(str2))# abc* 4 非均匀填充

endswith(suffix, beg=0, end=len(string))

1.endswith(suffix, beg=0, end=len(string)):检查字符串是否以 suffix(后缀) 结束,如果 beg 或者 end 指定则检查指定的范围内是否以 suffix 结束,如果是,返回 True,否则返回 False。

str="c:/user/desck/asdf/sde/1.png"
result=str.endswith(".png") # True 字符串以什么结束,是返回true,反之
print(result)

expandtabs(tabsize=8)

1.expandtabs(tabsize=8):把字符串 string 中的 \t 符号转为空格,tab 符号默认的空格数是 8 。

str="qjan\tskiwjs"
re=str.expandtabs(tabsize=8)
print(re)#qjan    skiwjs

find(str, beg=0, end=len(string))、rfind(str, beg=0,end=len(string))、index(str, beg=0, end=len(string))、rindex( str, beg=0, end=len(string))

1.find(str, beg=0, end=len(string)):检测 str 是否包含在字符串中,如果指定范围 beg 和 end ,则检查是否包含在指定范围内,如果包含返回开始的索引值,否则返回-1

str="abcdeb"
index=str.find("b")
print(index) #1 打印b的索引 没有b打印-1 有多个b时返回第一个b的下表
#查找下一个b
index=str.find("b",index+1)
print(index) # 5 index+1表示下一次出现搜索词的索引

2.rfind(str, beg=0,end=len(string)):类似于 find()函数,不过是从右边开始查找。

str="abcdafa"
result=str.rfind("a")
print(result)#6 一次性只查找一个

3.index(str, beg=0, end=len(string)):跟find()方法一样,只不过如果str不在字符串中会报一个异常。

4.rindex( str, beg=0, end=len(string))类似于 index(),不过是从右边开始。

str="abc"
i=str.index("b")
print(i) #1

j=str.index("d")
print(j) #报错

isalnum()、isalpha()、isdigit()、isnumeric()、isspace()

1.isalnum():非空字符串 中没有符号 就返回True。

2.isalpha():非空字符串 中没有符号和数字 就返回True。

str="www"
result=str.isalnum()
print(result)#True
str="www?"
result=str.isalnum()
print(result)#False
str="ddd0"
result=str.isalnum()
print(result)#True isalpha()返回false
str="ddds " #有空格也会返回False
result=str.isalnum()
print(result)#False

3.isdigit():如果字符串只包含数字则返回 True 否则返回 False。

4.isnumeric():如果字符串中只包含数字字符,则返回 True,否则返回 False。

5.isspace():如果字符串中只包含空白(空字符串),则返回 True,否则返回 False。

print(str=="") #False不是空字符串
print(len(str)==0) #False 字符串的长度不为0
print(bool(str))# True 非0的bool型都是true 只有length为0的字符串才会转化为False,有空格就不是空字符串
print(str.isspace()) # True

join(seq)、split(sep="", maxsplit=string.count(str))、splitlines(keepends)

1.join(seq):以指定字符串作为分隔符,将 seq 中所有的元素(的字符串表示)合并为一个新的字符串。

str="abc"
re="-".join(str)#注意这个函数的调用方式
print(re)#a-b-c

2.split(sep="", maxsplit=string.count(str)):以 sep为分隔符截取字符串,如果 maxsplit有指定值,则仅截取 maxsplit+1 个子字符串

str="https://www.baidu.com/s?wd=马爸爸&rsv_spt=1&rsv_iqid=123456&issp=1"
arr=str.split("&")
print(arr) #['https://www.baidu.com/s?wd=马爸爸', 'rsv_spt=1', 'rsv_iqid=123456', 'issp=1']
arr=str.split("?")[1]
print(arr)#wd=马爸爸&rsv_spt=1&rsv_iqid=123456&issp=1
print(arr.split("&"))#['wd=马爸爸', 'rsv_spt=1', 'rsv_iqid=123456', 'issp=1']
print(arr)#wd=马爸爸&rsv_spt=1&rsv_iqid=123456&issp=1
arr=str.split("?")[1].split("&")
print(arr)#['wd=马爸爸', 'rsv_spt=1', 'rsv_iqid=123456', 'issp=1']

3.splitlines(keepends)按照行('\r', '\r\n', \n')分隔,返回一个包含各行作为元素的列表,如果参数 keepends 为 False,不包含换行符,如果为 True,则保留换行符。

str="abc\radsd\nsasd\tdsds"
print(str)
result=str.splitlines() #将有换行功能的进行分割
print(result)#['abc', 'adsd', 'sasd\tdsds']

lstrip()、rstrip()、strip(chars)

1.lstrip():截掉字符串左边的空格,\t,\r,\n或指定字符。

2.rstrip():删除字符串末尾的空格\t,\r,\n或指定字符。(同理)

3.strip(chars)在字符串上执行 lstrip()和 rstrip()

str="    132424"
result=str.lstrip()
print(str)#    132424
print(result)#132424

str="\t132424"
result=str.lstrip()
print(str)#    132424
print(result)#132424

str="132424"
result=str.lstrip("1")
print(str)#132424
print(result)#32424

str="r132424"
result=str.lstrip("r")
print(str)#r132424
print(result)#132424

#截图两边的空格\t,\r,\n或指定字符
str="  244    "
result=str.lstrip().rstrip()
print(result)#244

maketrans()

1.maketrans():创建字符映射的转换表,对于接受两个参数的最简单的调用方式,第一个参数是字符串,表示需要转换的字符,第二个参数也是字符串表示转换的目标。

str="abcde"
#两个参数中必须要有一个str中的参数
result=str.maketrans("9","d") # {57: 100} str中的a的键码值和b的键码值进行映射,生成字典
print(result)

max**(str)、min(str)

1.max(str):返回字符串 str 中最大的字母。

2.min(str):返回字符串 str 中最小的字母。

str="accdfdf"
print(max(str))#f
print(min(str))#a

replace(old, new , max)

1.replace(old, new , max):把 将字符串中的 old 替换成 new,如果 max 指定,则替换不超过 max 次。

str="文心一言知识增强大语言模型 百度全新一代知识增强大语言模型"
str2=str.replace("语言","智能",1)# 不指定次数就是全部替换
print(str2)#文心一言知识增强大智能模型 百度全新一代知识增强大语言模型

str="文心一言知识增强大语言模型 百度全新一代知识增强大语言模型"
str2=str.replace("语言","**",1)
print(str2)#文心一言知识增强大**模型 百度全新一代知识增强大语言模型

startswith(substr, beg=0,end=len(string))

1.startswith(substr, beg=0,end=len(string)):检查字符串是否是以指定子字符串 substr 开头,是则返回 True,否则返回 False。如果beg 和 end 指定值,则在指定范围内检查。

str="0817-349363828217"
result=str.startswith("0817") #字符串以什么开头,是返回true,反之
print(result)#True

zfill (width)

1.zfill (width) :在字符串左侧填充指定数量的零,确保整个字符串达到指定长度。

str="243545533"
re=str.zfill(6) #不足字符串长度,不进行填充了
print(re)#243545533
result=str.zfill(30)
print(result,len(result))#000000000000000000000243545533 30

Python 输入和输出

输入

1.print()内置函数提供在控制台输出打印数据

2.数据直接量(基本输出)(各类数据)

3.输入变量的值(打印是一种取值操作,变量需要定义并赋值,才能取值,否则就会报错,无值可取)

4.传入的直接量或者变量都称为数据 可以传入一个或多个数据用逗号隔开

a=20
b=True
print(10,20,a,b)#10 20 20 True

5.使用sep参数设定分隔符

print(10,34,44,55,sep=",")#10,34,44,55

6.使用end参数改变输出结束符

print("Line 1", end=" --- ")
print("Line 2")  # 连续打印时,第二行不会自动换行

x=10
print(x,end=" ")#Line 1 --- Line 2
x=20
print(x,end=" ")
x=30
print(x,end=" ")
x=40
print(x,end=" ")# 10 20 30 40

输入

1.input() 内置函数从标准输入读取文本,默认的标准输入是键盘。

2.input输入的是字符串,会让程序停止在这里,暂时不在往后执行

3.往后执行的条件为在控制台输入值后按enter键,生成输入的结果,后在继续往后运行

4.input每次执行都是独立的,调用一次就执行一次

print("请输入:")
x=input() 
print(f"输入的结果是:",x)

print("请输入:",end=" ")#后面的input不换行,在同一行
x=input() 
print(f"输入的结果是:{x}")

4.input可以直接进行输出传入的结果,但依旧需要后面进行输入内容

print("===========")
str = input("请输入:")#程序到这里不会继续往下执行,等待用户输入完毕后继续执行
print ("你输入的内容是: ", str)

5.案例:让用户输入一个数字

如果输入的数字不在[1,100]以内就打印"输入不合法",并让用户再次输入 否则: 判断用户输入的数字是否能被5整除 不能整除就打印 "不是5的倍数" 能整除: 判断这个数字是否大于50 大于就打印 "大" 小于就打印 "小"

user=input("请用户输入一个数字:")
if 1<=int(user)<=100:
    if int(user)%5==0:
        if int(user)>50:
            print("大")
        else:
            print("小")
    else:
        print("不是5的倍数")
else:
    print("输入不合法")
    input("请在此输入一个数字:")

条件语句

if条件语句

1.a=变量赋值表达式 =a变量取值表达式

2.格式:if 表达式: 执行体代码(可一行或对行代码),每一行要对齐,不能与if这个单词平级

3.if后面的表达式会判定为布尔值(判定:隐式代码bool(表达式)(看不到执行结果但在执行))

4.如果判定的结果为True,就会执行if语句的执行体,如果为False就不会执行会执行分支语句else

简单if条件语句
if 20:#数据直接量表达式
    b=3#声明变量并赋值
    print(6666)
    print(2222)
#这是一条语句,单语句
print(b)#能否运行取决于if执行体是否执行了,b是否通过if语句进行了声明并赋值了
print(111)

a=True
if a: #a为True执行if语句,a为False不执行if语句 隐式代码:bool(a)
    print(a)
    
if、else条件语句、if嵌套if条件语句
money=0.5
age=1
if money>1:
    if age<1:
        print("太小了,虽然钱够了,但不可以吃馒头")
    print("可以买馒头吃了")
else:
    print("钱不够")
if、elif、else条件语句
vip=3
if vip==1:
    print("v1用户,牛皮")
    vip=3 #被重新赋值了,将会在此运行后面的vip==3的if语句
if vip==2:
    print("尊贵的v2用户,牛皮")
if vip==3:
    print("尊贵的v3用户,牛皮")

# 优化
vip=3
if vip==1:#条件的表达式执行后的布尔值判断结果为真,后面的elif不在执行,反之,直到其中一个elif满足条件或程序运行完(else语句走完)
    print("v1用户,牛皮")
elif vip==2:
    print("尊贵的v2用户,牛皮")
elif vip==3:
    print("尊贵的v3用户,牛皮")
else:
    print("不是vip用户")
    
vip=3
age=20
if vip==1:
    print("v1用户,牛皮")
elif age>=18:
    print("成年了")#只执行这条elif语句
elif vip==3:
    print("尊贵的v3用户,牛皮")
else:
    print("不是vip用户")

循环语句

range函数

1.用于生成一个整数序列,序列中的每个元素按照指定的步长递增(默认步长为1)。这个函数并不会真正创建一个列表,而是返回一个可迭代的对象——range对象。当你在循环中使用它时可以遍历内部的元素

2.arr=range(10,30)#10到29 arr是一种数据容器(迭代器,暂时不讲),可以用循环语句去取出它里面的数据

3.填一个参数就是0到参数-1

4.填两个参数,第一个是起始值,第二个是结束值,但不包含结束值这个数

5.填三个参数,前两个参数和填两个参数一致,第三个参数是步长(假设步长为2,就是隔一个数取第二个数)

6.格式 range(stop) range(start, stop) range(start, stop, step) 7.参数说明: start(可选):序列的起始值,默认是0。 stop:序列的停止值,序列不会包含此值。 step(可选):每次迭代增加的步长,默认是1。

arr=range(10,30)
print(arr)
for el in arr:
    print(el,111111111111111)#11111111调试手段

for i in range(10):
    print(666)#打十次666

for-in 循环

1.for 循环 用于迭代遍历可迭代对象(如列表、字符串、字典等)

2.案例

打印这个列表中的每一个数据 ,判断列表中的每一个数据,是偶数就打印 10-偶数 奇数打印 23-奇数

arr=[10,22,33,53,66,22,43]
for x in arr:
    print(x)
    if x%2==0:
        print(f"{x}-偶数")
    else:
        print(f"{x}-奇数")

有一个列表全是数字,求列表中的所有数字的和

sum=0
arr=[11,32,43,22,63,67,32]
for x in arr:
    sum+=x
print(sum)

循环数字范围

for i in range(1, 10, 2): #1,3,5,9
    #隐式代码 i=顺序
    print(i)
    i += 2 #因为这里的操作导致和range的值一致 3,5,7,9
    print(i)

for i in [2,3,4,5]:#i重新赋值,2,3,4,5都会取到
    #隐式代码 i=顺序2,3,4,5
    print(i)
    i += 2#i的值改了,但循环时又覆盖了 4,5,6,7
    print(i)

while 循环

1.while 循环 在条件为真时重复执行代码块

2.案例

某人有100,000元,每经过-次路口,需要交费,规则如下:

1)当现金> 50000时每次交5%

2)当现金< = 50000时,每次交1000,

编程计算该人可以经过多少次路口

money = 100000
n = 0
while money >= 1000:
    n += 1
    if money > 50000:
        money = 0.95*money  
    else:
        money=money - 1000

print('共可以过桥' + str(n) + '次')
#依旧会是一个无限循环
i=5#只要满足条件就会无线循环
while 4<i<20:
    print(111)
    
i=5
while 4<i<20:
    print(111)
    i+=1#添加一个条件改变循环体的值,这就变成了一个有限循环

如果n是1,判断它是否大于1000而且是闰年 不是的话就加17 求第一满足这个情况的数字是多少

n=1
i=1
while i>0: #条件是一个不等式范围,无限循环
    if(n>1000 and ((n%4==0 and n%400!=0) or n%400==0)):
        print(n)#1004
        break#满足条件时终止循环
    else:
        n+=17

#逆向思维
n=1
while n<=1000 or not ((n%4==0 and n%100!=0) or (n%400==0)):
   n+=17

print(n)

让用户输入一个数字 如果输入的数字不在[1,100]以内就打印"输入不合法",并让用户再次输入 否则: 判断用户输入的数字是否能被5整除 不能整除就打印 "不是5的倍数" 能整除: 判断这个数字是否大于50 大于就打印 "大" 小于就打印 "小"

user=input("请用户输入一个数字:")
while user:
    intuser = user.isdigit()
    if intuser:
        if 1 <= int(user) <= 100:
            if int(user) % 5 == 0:
                if int(user) > 50:
                    print("大")
                    break
                else:
                    print("小")
                    break
            else:
                print("不是5的倍数")
                break
        else:
            print("输入不合法,超出范围")
            user=input("请在此输入一个数字:")
            # 如果在返回重来,循环语句
    else:
        print(f"你输入的{user}是非纯数字的字符串,请重新输入")
        user = input("请在此输入一个数字:")

循环控制

1.break:用于跳出当前循环。

for i in range(1,20):
    if i%3==0:
       break
    print(i)#1,2
    
for i in range(5):#不需要初始化循环体变量,只需要循环体变量名
    for j in range(4):
        print(11)
        break
    print(222) #结果 11 22 11 22 11 22 11 22 11 22
# 判断这个数组中是否有奇数
re=0
arr=[11,23,11,22,13,22,44,33]
for el in arr:
    if el%2==1:
        re=1
        print(re)#1
        break#只作用于循环语句,跳出当前循环,循环不在执行
    print(111)#当break被执行时,循环不在进行,当前循环的后面代码也不能执行
    
n=1
while n<10:
    print(n) #1,2,3,4,
    n+=1
    if n==5:
        break

2.continue:用于跳过当前迭代,继续下一次迭代。

for i in range(1,20):
    if i%3==0:
       continue
    print(i)
    
for i in range(5):
    if i==3:
        continue#当前这次循环的时候,当前循环里面的所有程序不在运行,之间进入本次循环的下次循环
    print(i)#0,1,2,4 

pass 语句

1.pass是空语句,是为了保持程序结构的完整性。

2.pass 不做任何事情,一般用做占位语句

for x in  range(10):
    if x == 7:
        pass#如果执行体不写,那么程序要报错,因为  执行体代码(可一行或对行代码),为了保持结构的完整
    else:
        print(x)
   

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值