收录于话题

#Python入门

27个


       Python字符串及基本操作(入门必看)_python
     基础入门的知识一直没有更新完,今天小张接着给大家带来入门级的字符串的常用操作。本文适合刚入门的小白,大佬们请绕过。一、定义

字符串的意思就是“一串字符”,比如“Hello,Charlie”是一个字符串,“How are you?”也是一个字符串。
Python 要求字符串必须使用引号括起来,使用单引号也行,使用双引号也行,只要两边的引号能配对即可。
简单说下几个特点:

  • 1.字符:即单一的文字符号,

  • 2.字符串:即是有序的字符组成的序列,其中用 '、 " 、   '''    、"""、 括起来的内容

  • 3.索引:一排数字反映第某个位置的字符,索引的下表是从0 开始的,使用 中括号 [ ] 来获取数据,反向的话是从-1开始的
    例如 :

1s = "刘德华很帅但是张国荣更"
2print(s[-4] +s[2] +s[1] + s[0])
3# 结果
4张 华 德   刘
二、常用操作

切记, 字符串是不可变的对象, 所以任何操作对原字符串是不会有任何影响的,即有返回值

  • 1.upper()  转换成大写 ,忽略小写的时候用  与之对应的是lower()

1while True:
2    content = input("请输入你要喷的内容(输入Q退出):")
3    if content.upper() == 'Q'# 当用户输入q或者Q的时候退出. 这里要忽略大小写
4        break
5    print(content)
  • 2.strip() 去掉左右两端的空白,包括括号及\n 和\t,用户内容输入有空白时用

1username = input("请输入用户名:").strip()
2password = input("请输入密码:").strip()
3if username == "xiaozhang" and password == "123":
4    print("成功")
5else:
6    print("失败")   #假如用户输入   xiaozhang 时,前面或者后面有空格 不好判断,此时可以这样用,能保证用户正确登陆
  • 3.replace("old","new")字符串 替换

1s = "xiaozhang is a handsome man"
2s1 = s.replace("handsome","nice")
3s2 = s.replace("a","AB",2)   #将a 替换成AB,替换2次
4print(s1)   #xiaozhang is a nice man
5print(s2)  #    xiABozhABng is a handsome man 
  • 4.split("以那个切割",次数)  字符串切割   结果是list(列表),默认以空白切割

1s = "xiaozhang_qq_niannian"
2s1 = s.split("_")   # 以哪个切割,哪个就要丢失
3s2 = s.split("xiaozhang_qq_niannian")   #切割的内容在边上. 会出现空字符串
4s3 = s.split("x",1)    #   结果为['', 'iaozhang_qq_niannian']
5print(s1)   #   结果为['xiaozhang', 'qq', 'niannian'] 
6print (s2)   #  结果为 ['', '']

与之对应的还有rsplit()
string.rsplit(separator, max)
方法从右侧开始将字符串拆分为列表。
如果未指定 "max",则此方法将返回与 split() 方法相同的结果。
注释:若指定 max,列表将包含指定数量加一的元素。

  • 5.startswith("以哪个开始") 判断是否以xxx开头 与之对应的是endswith 输出结果为False和True

1s = "今天的内容非常简单.你们信吗? 作业也很容易. 就是整理不太好"
2print(s.startswith("今天"))      #True
3print(s.endswith("太好")) #True
  • 6. find() 查找变量出现的位置,显示索引,如果查不到为-1,如果是index查找,没有的话程序会报错

1s = "小张学Python公众号值得推荐"
2print(s.find("哈哈")) # 如果找不到返回-1  
3print (s.find ("小"))  #   结果为0 找到了 显示索引号码  0
  • 7. isdigit() 判断是否是数字组成(整数)  结果为False 和True  同理 isupper(判断是否是大写) islower(判断是否为小写) .isalpha(是否为字母)

1s = "1234"
2print (s.isdigit()) # 显示 True,如果字符串中有字母或者标点符号即为False
  • 8. len()  求长度. 内置函数

1s = "小张学Python公众号值得推荐"
2print(len(s)) #  16  返回给你字符串的长度
  • 9.count("") 计数

1s = "小张学Python公众号值得推荐!推荐!推荐!"
2print(s.count("推荐")) # 计数  显示 3
3s = "小张学Python公众号值得推荐!推荐!推荐!"
4print(s.count("推荐",0,20))# 结果显示 2
  • 10.center()   居中

1a = "小张学Python"
2print (a.center(20,"*"))
3#结果:
4*****小张学Python******
  • 11.rjust()   右对齐

1print (a.ljust(20,"*")) 
2#结果:
3***********小张学Python
  • 12.ljust()   左对齐

1print (a.ljust(20,"*")) 
2#结果:
3小张学Python***********
  • 13.迭代
    格式:

1for 变量 in 可迭代对象:    
2   代码块      #可迭代对象中的每一个元素,分别赋给前面的变量,,可以将迭代对象遍历.

字符串就是可迭代的对象
记住报错: TypeError: 'int' object is not iterable   int对象是不可迭代的
例子:

1ss = "小张学Python公众号值得推荐"
2for cc in ss:
3    print(cc) #以此打印每个字符
4#或者利用while方法
5count = 0
6while count < len(ss):
7    print(ss[count])
8    count += 1
  • 14 切片
    格式:
    srt[start:end:step]
    从start开始截取,到end结束,但不包括end,step不写的话默认是1且从左往右切,step正数从左往右,如果是负数,从右往左,每n个取1个例如:

1s = "刘德华很帅但是张国荣更"
2print(s[1:])     # 从第一个索引打印到结尾     德华很帅但是张国荣更
3print(s[:4]) #    从开头打印到第三个 即 结果为  刘德华很
4print(s[:])   #打印全部      刘德华很帅但是张国荣更
5print(s[::-1])  #更荣国张是但帅很华德刘
6print (s[:-1])  # 把最后一个字符去掉 即刘德华很帅但是张国荣
  • 15.利用切片判断是否为回文的案列:
    定义:把相同的词汇或句子,在下文中调换位置或颠倒过来,产生首尾回环的情趣,叫做回文,也叫回环。

1n = input("输入回文")
2if n == n[::-1]:
3    print(True)
4else:
5    print(False)       
6#例如输入
7上海自来水来自海上,则打印True