一、常用的字符串方法(一):(字符串是不能被修改的)

1)a.strip()   #默认去掉字符串两边的空格和换行符

a = '  字符串  \n\n '
c = a.strip()
a.lstrip()  #默认去掉字符串左边的空格和换行符
a.rstrip() #默认去掉字符串右边的空格和换行符

#如果strip()方法指定一个开头或者结尾的值,那么去掉这两个值,前后有空格都不能去

words = 'today is a wonderful    day'
print(words.strip('day')) #只能去掉开头的day或者结尾的day

2)words.count('a')  #统计字符串出现的次数

print(words.count('a'))  #统计字符串出现的次数

3)words.index('ia')  #找某个字符串的下标,如果元素不存在会报错

print(words.index('z'))  #找下标,如果元素找不到的话,会报错

4)words.find('ia')  #找某个字符串的下标,如果元素不存返回-1

print(words.find('z')) #找下标,如果元素找不到的话,返回-1

5)replace()替换字符串(常用)

print(words.replace('day','DAY'))  #替换字符串

6)#isdigit()判断字符串是否全为纯数字,返回True/False

print(words.isdigit()) #判断字符串是否为纯数字 0-9
if number.isdigit() and int(number)!=:   #判断一个数是否是正整数,这个方法包含0,所以生成的数量不能是0
pass

7)#isalpha()判断字符串是否全为汉字或字母

username = 'abcde11'
print(username.isalpha()) #False

8)#isalnum()判断字符串是否全是汉字或字母或数字(只要没有特殊符号)

username = 'abcde11##'
print(username.isalnum()) #有特殊符号,返回False

9)#islower()判段如果字符串包含了字母,这些字母都是小写字母(没有大写的)

username = 'bbaaa#1'
print(username.islower()) #有特殊符号,也返回Ture

10)#isupper()判段如果字符串包含了字母,这些字母全是大写字母(没有小写的)

username = 'B#1'
print(username.isupper()) #有特殊符号,也返回Ture

11)#判断是否以某个字符串开头

print(words.startswith('https'))

12)#判断是否以某个字符串结尾

print(words.endswith('.jpg'))   #是否以.jpg结尾

13)#将字符串变成大写/小写

print(words.upper())   #变成大写
print(words.lower()) #变成小写

14)将字符串里的字母大写变成小写,小写变成大写

print(a.swapcase())

二、字符串的常用方法(二):

#想要将list转换为str,不要通过str()强制转换,因为转换后的第一个元素是中括号[

lis = ['a','b','c']
sl = str(lis)
print(sl) #相当于sl = " ['a','b','c'] "
print(sl[0]) #转换后第一个元素是[

>>>['a', 'b', 'c']
        [                 #转换后第一个元素是[

1)res = ''.join(l)

①把一个list变成了字符串;

②通过引号中的某个字符串把list中的每个元素连接起来

③只要是可以循环list、字符串、元组等,join都能把里面的每个元素连接起来

lista = ['zhang','liu','liang']
res = ''.join(lista) #默认空格连接 res2 = 'N'.join(lista) #用引号中的字符串连接起来
print(res,res2) >>> zhangliuliang zhangNliuNliang

join拼接字符串:只能是字符串,将多个字符串放在一个list里面

name = 'zhangsan'
pwd = ''
c = '北京市'
all = ','.join([name,pwd,c]) #先要将字符串放进list中(因为jion只能有一个参数,相当于一个list['zhangsan','123456','北京市'])
print(all)

2)s. split() 分割字符串:

s. split(',')   #按照引号中的字符串或分隔符,分割字符串

s. split()   #括号中没有传值的话,按照空格分割

names = 'zhangsan,zili,caomi'
name_list = names.split(',') #以逗号分割字符串 name_2 = names.split('a') #以字符串中的‘a’来分割
print(name_list) #字符串分割后,返回一个list print(name_2) >>> ['zhangsan', 'zili', 'caomi'] >>> ['zh', 'ngs', 'n,zili,c', 'omi'] #以a分割,a就没有了

3)s.format 字符串格式化

age = 18
name = 'zhangsan'
sex = 'male'
sql = "insert into user VALUES ('{name}','{sex}',{age});"
new_sql = sql.format(age=age,sex=sex,name=name)
print(new_sql) >>> insert into user VALUES ('zhangsan','male',18);

4)s.center(50,'*')  #

print('欢迎登录'.center(50,'*')) #不够50个字符,两边以“*”补齐

>>> ***********************欢迎登录***********************

5)'xx'.zfill() 字符串的方法:补零

print(''.zfill(4))  #’3’字符串不足4位的在前面补零

>>> 0003

三、string模块的字符串方法:

import string
print(string.ascii_lowercase) #所有的小写字母
print(string.ascii_uppercase) #所有的大写字母
print(string.digits) #所有的数字
print(string.ascii_letters) #所有的大写字母和小写字母
print(string.punctuation) #所有的特殊字符

【例1】:

# 校验密码里面是否包含
# 数字、大写字母、小写字母、特殊符号
import string
nums_set = set(string.digits)
upper_set = set(string.ascii_uppercase)
lower_set = set(string.ascii_lowercase)
pun = set(string.punctuation)
for i in range(5):
pwd=input('请输入密码:').strip()
pwd_set = set(pwd)
if pwd_set & nums_set and pwd_set & upper_set and pwd_set & lower_set and pwd_set & pun:
print('密码是合法的',pwd)
else:
print('密码必须包含大写字母、小写字母、数字和特殊字符')

【例2】:校验密码是否合法

#校验密码是否合法的程序:
#输入一个密码
#1、长度5-10位
#2、密码里面必须包含,大写字母、小写字母和数字
#3、最多输入5次 for i in range(5):
passwd = input("请输入密码:").strip() #去掉空格
if passwd != '':
if len(passwd)>4 and len(passwd)<11:
num_count = 0
lower_count = 0
upper_count = 0
for p in passwd: #循环字符串
if p.isdigit(): #是否包含数字,是的话+1
num_count += 1
elif p.islower(): #是否包含小写字母
lower_count += 1
elif p.isupper(): #是否包含大写字母
upper_count += 1
if num_count>0 and lower_count>0 and upper_count>0:
print("密码校验通过")
break
else:
print("密码必须包含大写字母、小写字母和数字")
else:
print("密码长度为5-10位")
else:
print("密码不能为空") else:
print("错误次数过多")

【例3】:校验密码是否合法-集合方式

#校验密码是否合法的程序:
#输入一个密码
#1、长度5-10位
#2、密码里面必须包含,大写字母、小写字母和数字
#3、最多输入5次
import string
digits_set = set(string.digits) #所有数字的集合
upper_set = set(string.ascii_uppercase) #所有大写字母的集合
lower_set = set(string.ascii_lowercase) #所有小写字母的集合 for i in range(5):
passwd = input("请输入密码:").strip() #去除两边的空格
passwd_set = set(passwd) #转换为集合
if passwd=='':
print("密码不能为空")
elif len(passwd)>11 and len(passwd)<4:
print("密码长度为5-10位")
elif passwd_set & digits_set and passwd_set & upper_set and passwd_set & lower_set: #取交集
print("密码合法")
break
else:
print("密码必须包含大写字母、小写字母和数字")
else:
print("错误次数过多")

python学习笔记(四)- 常用的字符串的方法的更多相关文章

  1. Python学习笔记之常用函数及说明

    Python学习笔记之常用函数及说明 俗话说"好记性不如烂笔头",老祖宗们几千年总结出来的东西还是有些道理的,所以,常用的东西也要记下来,不记不知道,一记吓一跳,乖乖,函数咋这么多 ...

  2. python学习笔记之常用模块(第五天)

    参考老师的博客: 金角:http://www.cnblogs.com/alex3714/articles/5161349.html 银角:http://www.cnblogs.com/wupeiqi/ ...

  3. python学习笔记(二)— 字符串(string)

    字符串是 Python 中最常用的数据类型.我们可以使用引号('或")来创建字符串. 创建字符串很简单,只要为变量分配一个值即可.例如: var1 = 'Hello World!' var2 ...

  4. Python学习笔记(三)字符串类型及其操作(2)

    1.字符串的表示 字符串是字符的序列表示,可以由一对单引号(‘).双引号(“)或三引号(’‘’)构成.其中,单引号.双引号和三引号都可以表示单行字符串,但是只有三引号可以表示多行字符串 在使用双引号时 ...

  5. Python学习笔记总结1:字符串表示str与repr的用法比较

    参考博文地址:http://blog.csdn.net/yyt8yyt8/article/details/7030416 值转化为字符串常用以下三种方法: 1. str函数 str函数转化为合理形式的 ...

  6. 转载-python学习笔记之常用模块用法分析

    内置模块(不用import就可以直接使用)   常用内置函数   help(obj) 在线帮助, obj可是任何类型 callable(obj) 查看一个obj是不是可以像函数一样调用 repr(ob ...

  7. Python 学习笔记(6)— 字符串格式化

    字符串格式化处理 远古写法 以前通常使用运算符号 % ,%s 插入的值 String 类型,%.3f 指插入的值为包含 3 位小数的浮点数: format1 = "%s, %s!" ...

  8. [Python] Python学习笔记之常用模块总结[持续更新...]

    作为一种极其简单的编程语言,Python目前成为了最炙手可热的几种语言之一.它不仅简单易学,而且它还为用户提供了各种各样的模块,功能强大,无所不能.有利必有弊,学习Python同样有困扰,其中之一就是 ...

  9. python学习笔记(六):常用模块

    一.模块.包 什么是模块? 模块实质上就是一个python文件,它是用来组织代码的,意思就是说把python代码写到里面,文件名就是模块的名称,test.py test就是模块名称. 什么是包? 包, ...

  10. python学习笔记(四):生成器、内置函数、json

    一.生成器 生成器是什么?其实和list差不多,只不过list生成的时候数据已经在内存里面了,而生成器中生成的数据是当被调用时才生成呢,这样就节省了内存空间. 1. 列表生成式,在第二篇博客里面我写了 ...

随机推荐

  1. win10的linux子系统安装及使用

    最近需要用到linux但是又不想装双系统,正好win10推出了linux子系统,省事了,自己也是煞费苦心才整明白 1.首先你要是很新的win10版本(1607及已上),这样才有下面的步骤 依次在 设置 ...

  2. java 实现自定义事件

    import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; i ...

  3. PythonStudy——名称空间 Name space

    # 名称空间:就是名字与地址的对应关系,可以被Python解释器遍历查找,采用堆栈存储方式 # 三种名称空间# Built-in:内置名称空间:系统级,一个:随解释器执行而产生,解释器停止而销毁# G ...

  4. .Net Core 项目在Windows服务中托管【转载】

    本文以创建的WebAPI项目为例子进行讲解(本人使用VS Code创建的项目) 1.使用VS Code创建WebAPI项目(项目名称自定义) 2.在创建的项目csproj项目文件中,确认是否存在运行时 ...

  5. Android之sqlite数据库版本升级和降级的处理(onUpgrade和onDowngrade)

    一.SQLite升级和降级需要考虑的细节 ①  SQLite升级: v3.0数据库版本 [onUpgrade 情况:n-1,onCreate 情况:1]                        ...

  6. jquery-2.0.3 源码分析 整体架构

    关键 var jQuery = function( selector, context ) { return new jQuery.fn.init(); } jQuery.fn = jQuery.pr ...

  7. Scrapy实战篇(四)爬取京东商城文胸信息

    创建scrapy项目 scrapy startproject jingdong 填充 item.py文件 在这里定义想要存储的字段信息 import scrapy class JingdongItem ...

  8. PHP chdir函数:改变当前的目录

    PHP chdir函数的作用是改变当前的目录,这里主机吧详细介绍下chdir函数的用法,并列举使用chdir函数的例子. chdir定义和用法: chdir() 函数改变当前的目录. chdir实例: ...

  9. suricata 配置文件threshold

    threshold threshold(阈值)关键字可用于控制规则的警报频率,它有3种模式: threshold: type <threshold|limit|both>, track & ...

  10. wireshark抓本地回环包

    问题描述: 在网络程序开发的过程中,我们往往会把本机既作为客户端又作为服务器端来调试代码,使得本机自己和自己通信.但是wireshark此时是无法抓取到数据包的,需要通过简单的设置才可以 方法一:Wi ...