python学习之路---day03

本文详细介绍了Python中数据类型转换方法,包括bool与int、int与bool的转换原理。深入解析了字符串索引与切片操作,展示了如何使用Python进行字符串的高级操作,如首字母大写、大小写转换、内容替换等。同时,文章还提供了字符串判断、查找、分割等实用技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一:数据类型转换  

  1:bool-->int 将bool转成 int型
    True 是1  False是0
    a=True
    c=int(a)
    print(c)

    b=False
    d=int(b)
    print(d)
  2:int——〉bool 将int转换成bool型
    0: False   非零:True
    a=0 #-1 1 0
    b=bool(a)
    print(b)
    将int 转换成 bool 型时,只要int是非零的数据,结果都是True,
    如果int是0,则结果是  False
    空的东西是False ,非空的东西是True ,如下例子:
    a="你好"
    b=bool(a)
    print(type(b))  #结果:True,类型:bool
    print(type(a))  #结果:<class 'str'>
    print(bool("你好"))  #结果: True
    print(type(bool("你好")))  #类型:bool
    print(bool(""))  #里面啥都没有,打印值为False
    print(bool(" ")) #里面有个 空格 ,也占用空间,打印的bool值为 True
  3:while True 实际是 while 1 (实际上电脑里面是01010的在处理,所以用数字代表True会更好)
  如下例子:
while 1:
    print("死循环!")

二:字符串的 索引-切片:

  1:索引:
s[n] n是指 索引为n的那个目标字符,n为目标字符的索引。
s="敲代码是一件很高兴的事情"
print(s[3]) # 打印: 是
print(s[5]) #打印: 件
当索引为负数时,会 从右往左 执行,查找需要的目标字符。:
n大于实际 索引的总数时,会报错:IndexError: string index out of range
# 当s[n] 中的索引 n 是正数是,从 0开始左往右数,,
当n为负数时,从 1 开始 ,从右往左 数 :
print(s[-4]) #打印:兴
  2:切片:
a="哎呦今天没钱吃饭了,咋办呦"
print(a[99]) #IndexError: string index out of range

a="哎呦今天没钱吃饭了,咋办呦"
切片:从头到尾的切片,但是顾头不顾尾最后一个没有被切片!
s[start:end] start:开始的索引 end 结束的索引
print(a[2:9]) #从2到9 ,不包含9 #打印:今天没钱吃饭了 --〉顾头不顾尾
print(a[2:]) #从索引2 开始,到结尾结束。 打印:今天没钱吃饭了,咋办呦
print(a[:]) #从头切到尾,全部都切掉,打印:哎呦今天没钱吃饭了,咋办呦
print(a[5:3]) #无打印结果,因为默认的打印顺序是从左往右。
  3: 切片步数 step的 正负 不同含义:
 
s[start:end:step]
如果step是 正数,则从左往右开始切片,不包含最后的字符。
如果step是 负数,则从右往左开始切片,不包含最后的字符
s="哎呦今天没钱吃饭了,咋办呦"
#print(s[1:7]) #顾头不顾尾打印:呦今天没钱吃
print(s[3:5:-1]) #右边从1开始数数切片:打印:呦办咋,
 
s = "金毛狮王谢逊紫衫龙王黛绮丝"

#   print(s[3:1:-1])
#   切片方法:-1代表顺序是从右往左切片,3:1  代表是从左边开始数索引,从  ”金毛狮王“  这个区间开始,
            再取  索引是3(王)到索引是1(毛)之间的字符,(此时切片顺序是从右往左,也是顾前(王)不顾后(毛))
#
#   总结:s[start:end:step],如果step是正数,则从左往右开始切片,也是顾头不顾尾
#           如果step是负数,则从右往左开始切片,(此时 头是 索引为end的字符,尾是索引为start的字符, )顾头不顾尾,
            取end到start之间的数值(此时取值方向是从右往左)
#           # step:  步长。 每隔xx个取1个。 默认是1 如果step是-1 从右往左取值
#

  如果是a[-1:-3]   则取不到值,因为是step 默认是1(类似:a[-1:-3:1])

三:字符串操作:

  1:(a.capitalize())首字母大写:
a="abcd"
b=a.capitalize()
print(b) #打印结果:"Abcd"
  2:a.lower()--将字符串中的大写字母全部都转换成 小写字母(大写字母--〉 小写字母)
a="ABCE"
b=a.lower()
print(b) #打印:abcd
  3:a.upper()--将字符串中的字幕全部转换成大写 (小写字母--〉大写字母)
a="abcd"
b=a.upper() #xxx.方法()
print(b) #打印:ABCD,将字符串中的小写字母全部转换成大写
  4:a.swapcase()--将字符串中的大写转换成小写,小写转换成大写!
a="abKocGl"
b=a.swapcase()
print(b) #打印:ABkOCgL
  5: a.title()--将每个不连续的单词的 首字母转换成大写字母
a="kb 哈cd哈o哈iu"
b=a.title()
print(b) #打印:Kb 哈Cd哈O哈Iu
  6: a.center(11,"&")--使字符串返回一个以num长度为准的新的字符串,并且如果是奇数个,
则左边的空格或则自定义的字符比右边多
a="5907"
#b=a.center(num,"&")
b=a.center(11,"&")
print(b) #打印:&&&&5907&&&
  7: a.strip() 去掉字符串两边的空格

 

这个在用户登陆用户名和密码时会用到
a=" ab df "
b=a.strip()
print(b) #打印: ab df (注意,.strip不能去掉字符串中间的空格)

例子:
username=input("用户名:").strip()
pwd=input("密码:").strip()
if username=="a" and pwd=="123":
print("登陆成功!")
else:
print("登陆失败!")

 

  8: a.strip() 去掉左右两边指定的内容:

 

a="ab----yuyh---ab"
b=a.strip("ab") #=去掉左右两边的 指定值:ab
print(b) #打印:----yuyh---

 

  9: a.replace(a,b) 将字符串中的a 替换成 b。 例子:
a="一点钱都没有了,怎么办?"
b=a.replace("一点钱都没有了","突然暴富了")
print(b)
  10: a.split() 从制定位置开始切割。从哪里切割,哪里就会消失
001:切割后,剩余下来的内容,打印出来的结果是一个列表
  a="我的天涯,哎呦不错,突然暴富"
  b=a.split("哎呦")
  print(b) #打印:['我的天涯,', '不错,突然暴富']

002:如果是以换行符切割的话,最后的一个字符后面的换行也要切割
  s = """诗人
  学者
  渣渣
  """
  print(s.split("\n"))
  #打印:['诗人', '学者', '渣渣', '']

003:如果是贴边切割(即 用全部的内容切割,则内容没有了),
  一定会有空字符串
  a = "我的天涯,哎呦不错,突然暴富"
  print(a.split("我的天涯,哎呦不错,突然暴富"))
  打印结果:['', '']

四:其他基本方法:

  01:a.startswith()判断是否是=以xxx开头,是 则True。不是则False
a.startswith() 判断是是不是以xx 开头.如果是,则结果为True
如果不是则结果为False ; 例子:
a="苍茫的天涯是我的爱呀"
print(a.startswith("苍茫")) #打印结果:True
print(a.startswith("我的")) #打印结果:False
 
  02:a.endswith()判断字符串是否是以xxx结尾,是则True,不是则False
a="苍茫的天涯是我的爱呀"
print(a.endswith("我的爱")) #打印:True
print(a.endswith("我的爱呀")) #打印:False
  03: a.count("s") 判断a字符串里面有多少个 s,然后返回相应的数目
a="wode 爱呀 爱啊 暴富哈哈哈哈eeee"
print(a.count("e")) #打印:5
print(a.count("爱呀爱")) #打印:0 (空格也算是字符)
print(a.count(" ")) #打印:3 (空格也算是字符)
print(a.count("")) #d打印:22 为什么有22个
04:find() 查找,如果找到了就返回元素的索引,并且当他找到第一个元素后就直接返回找到的元素的索引,不会再往后找了。
即使后面还有相同的元素。
没有找到就返回-1
a="wode 爱呀 爱啊 暴富哈哈哈哈eeee"
print(a.find("")) #打印:5 只找到第一个字符后就停止了。其他的后面的字符就不找了
print(a.find("e")) #打印:3 只找到第一个字符后就停止了。其他的后面的字符就不找了
print(a.find("88")) #打印:-1 返回值为-1 =说明没有找到内容
05: a.index() 通过元素去找其对应的索引。并且只返回字符串的第一个元素的索引
a="abcdefg"
print(a.index("cd")) #打印:2 只返回找的字符串的第一个元素的索引
06:len() 求字符串的长度(即:求字符串有多少个字符)
a="老面馒头"
print(len(a)) #打印:4

五:for 循环 for c in s(s代表字符串)

  01: for 变量(c) in 可迭代对象(l)
#例子:
a="abadkfd"
for c in a:
print(c)
打印:
a
b
a
d
k
f
d

for i in 10:
    print(i)
    #错误提示:TypeError: 'int' object is not iterable   因为常数是不能迭代的!

 

 

 



转载于:https://www.cnblogs.com/one-tom/p/9818821.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值