Python—字符串

一.字符串定义方式

a = 'hello'
b='what\'s up'    ##字符串中出现单引号,用反斜杠转义
c="what's up"     ##或者使用双引号定义字符串

print(a)
print(b)
print(c)

二.字符串特性

1.索引

s = 'hello'
print(s[0])    ##打印字符串中的第0个字符
print(s[1])    ##打印字符串中的第一个字符

2.切片

1.切片
s='hello'
print(s[0:3]) ##切片的规则:s[start:end:step] 从start位置开始,到end位置结束,步数为2(间隔为2)
print(s[0:4:2])   #输出结果为hl

2.显示所有字符

print(s[:])

3.显示前3个字符
print(s[:3])

4.显示第一个字符之后的所有字符
print(s[1:])

 

3.倒序输出

对字符串倒序输出
print(s[::-1])

 

4.重复输出

print(s * 5)   ##输出5此字符串s

 

5.连接

print(s + 'world')

 

6.成员操作符

print('h' in s)   ##判断字符串中是否有h字符,有的话,输出true,没有的话,输出false

7.for循环迭代

#循环操作打印字符串s中的字符
for i in s:
    print(i)

#练习1

回文字符串的判断

"""
# _*_coding:utf-8_*_
Name:回文数判断.py
Date:1/15/19
Author:westos-dz
Desc:
121 10201,类似这种字符为回文形式
"""
"""
判断输入的字符串是否是回文数,是回文数,输出true,否则输出false
"""
print('判断输入的字符是否是回文数,是回文')  
s1=str(input('请输入字符串:'))
s2=s1[::-1]          ##将客户输入的字符的倒序输出为字符串s2

if (s1==s2):         ##如果字符串与其倒序相同,就是回文形式
    print('true')

else:
    print('false')

 

三.字符串判断大小写和字符类型

#判断字符串里每个元素是否为 什么类型
#一旦有一个元素不满足,就返回False

1#digit:数字 判断某个字符串是否全是数字
print('123'.isdigit())   ##123全部都是数字类型,返回True
print('123abc'.isdigit()) ##123abc不全是数字类型,返回False

2#title:标题 判断某个字符串是否是标题(第一个字母大写,其他小写)

print('Hello'.istitle())   ##是标题
print('HelLo'.istitle())   ##不是标题

3#upper:大写 判断某个字符串是否是大写
print('hello'.upper())    ##输出hello的大写字符串
print('hello'.isupper())  ##hello不是大写字符串

4.#lower:小写 判断某个字符串是否是小写
print('HELLO'.lower())    ##输出HELLO的小写
print('Hello'.islower)    ##Hello不是小写形式

5.#alnum: 数字或者字母  判断某个字符串是否是只有数字和字母
print('123'.isalpha())   ##True
print('aaa'.isalpha())   ##False

 

四.字符串开头结尾的匹配

 

#1字符串开头的匹配
filename = 'hello.logg'

if filename.endswith('.log'):  ##如果filename字符串以.log为结尾
    print(filename)
else:
    print('error filename')

#2字符串结尾的匹配
url1='file:///mnt'
url2='ftp://172.25.254.14/rhle7.0'
url3='http://172.25.254.14/rhel7.0'

if url3.startswith('http://'):   ##如果url3字符串以http://结尾
    print('获取网页')
else:
    print('未找到网页')

五.字符串去除两边的指定字符

a='         hello    '
print(a)                   ##打印包含空格的字符串

b='  hello    '
#去除字符串两边的空格
print(b.strip())
#去除字符串左边的空格
print(b.lstrip())
#去除字符串右边的空格
print(b.rstrip())


c= 'helloh'
#去除字符串的h
print(c.strip('h'))
#去除字符串左边的h
print(c.lstrip('h'))
#去除字符串右边的h
print(c.rstrip('h'))
#去除字符串中的‘he’
print(c.strip('he'))

 

#练习2

判断变量名是否合法

"""
# _*_coding:utf-8_*_
Name:变量名合法性判断.py
Date:1/15/19
Author:westos-dz
Desc:
"""
"""
变量名是否合法:

1.判断变量名的第一个元素是否为字母或者下划线s[0]
2.如果第一个元素符合条件,判断第一个元素之外的其他元素是否是字母下划线或者数字
3.如果不合法,就输出字符串不合法
"""

a = input('请输入需要检测的变量名:')
first = a[0] ##定义字符串的第一个字符为变量first
other = a[1:] ##定义字符串出了第一个字符的其他的字符为变量other

if (first.isalpha() or first == "_"):   ##判断第一个元素是否符合条件,符合条件,就继续判断其余字符是否符合条件
    j=0            ##定义计数器,用于记录字符串中字符的循环次数
    for i in other:   ##开始循环
        if not(i == "_" or i.isalnum()):   ##循环中,如果每一个字符都不满足条件,输出不合法并且停止循环
            print('变量名%s不合法' %a)
            break
        else:         ##如果字符满足条件,计数器j+1
            j = j+1
    if j==len(other):    ##循环结束,当计数器j(循环次数)等于字符串的长度时,说明,每一个字符都符合条件,输出合法
                print('合法')

else:             ##第一个字符不符合条件的输出不合法
    print('变量名%s不合法' % a)

六.字符串的搜索与替换

#1字符串的搜索
#find(self, sub, start=None, end=None)

s='hello world hello'
#find找到子串,并返回最小的索引
print(s.find('hello'))   ##返回值为0,子串hello的第一个字符h在字符串s中的位置
print(s.find('world'))   ##返回值为6,子串world的第一个字符w在字符串s中的位置
#find找到子串,并返回最大的索引
print(s.rfind('hello'))  ##返回值为12,从字符串s的右侧向左查找

#2字符串的替换
#替换字符串中所有的'hello'为'westos'
print(s.replace('hello','westos'))

七.字符串的对齐

#1中心对齐(以空格填充,30代表字符串左右的字符数)
print('学生管理系统'.center(30))
print('学生管理系统'.center(30,'*'))  ##以*填充
#2左对齐(右侧以*填充)
print('学生管理系统'.ljust(30,'*'))
#3右对齐
print('学生管理系统'.rjust(30,'*'))
print('学生管理系统'.rjust(30,'@'))

八.字符串的统计

#1统计字符串中指定子串的数量
print('hello'.count('l'))
print('hello'.count('ll'))
#2统计字符串的长度
print(len('hello')) 

九.字符串的分离与连接

 

#根据指定字符来分离字符串
s = '172.25.254.14'
s1=s.split('.')    #以字符.来分离字符串
print(s1)
print(s1[::-1])    #得到反序字符串

date='2019-01-15'
date1=date.split('-') #以字符-来分离字符串
print(date1)      #结果是['2019','01','15']

#通过指定的字符进行连接
print(''.join(date1))  #结果是20190115
print('/'.join(date1)) #结果是2019/01/15

#练习3

字符的分离与连接

"""
# _*_coding:utf-8_*_
Name:出勤记录.py
Date:1/15/19
Author:westos-dz
Desc:
"""
"""
给定一个字符串来代表一个学生的出勤记录,则个记录仅包含以下字符:
'A':Absent,缺勤
'L' Late,迟到
'P' Present,到场
如果一个学生的出勤纪录中不超过一个A,并且不超过两个连续的L,那么输出True
否则输出False
示例1:PPPALLP
输出:True
示例2:PPALLL
输出:False
"""
"""
#方法一:
a = input('请输入学生的出勤记录:')
if a.count('A') <= 1 and a.count('LLL') == 0:
    print('True')
else:
    print('False')
"""
# 方法二:

a=input('请输入学生的出勤记录:')
print(a.count('A')<=1 and a.count('LLL')==0)

#练习4

字符串的分离与连接

字符串的倒序输出

"""
# _*_coding:utf-8_*_
Name:句子反转-小米面试.py
Date:1/15/19
Author:westos-dz
Desc:
"""
"""
题目描述:
给定一个句子(只包含字母和空格),将句子中的单词反转,单词用空格分隔
示例:
输入:
hello xiao mi
输出:
mi xiao hello
"""
"""
方法1
a = input('请输入第一个句子:')
b = a.split(' ')
c = b[::-1]
print(' '.join(c))
"""

#方法2
a = input('请输入第一个句子:')
print(' '.join(a.split(' ')[::-1]))

 

#练习5

字符串的替换

"""
# _*_coding:utf-8_*_
Name:练习-字符串相减.py
Date:1/15/19
Author:westos-dz
Desc:
"""
"""
题目描述:
输入两个字符串,从第一个字符串中删除第二个字符串中包含的所有字符
示例:
They are students.
aeiou
输出结果为
They r stdnts.
"""

a = input('请输入第一个字符串:')
b = input('请输入第二个字符串:')

for i in b:
    a=a.replace(i,'')
print(a)

#练习6

op = ['+', '-', '*', '/']  ##设表,表内容有加减乘除4种字符串
s = random.choice(op)      ##s为表中随机一个字符串
""
#_*_coding:utf-8_*_
Name:加减乘除系统.py
Date:19-1-15
Author:westos-dz
Description:

小学生算术能力测试系统:
设计一个程序,用来实现帮助小学生进行百以内的算术练习,它具有以
下功能:
提供10道加、减、乘或除四种基本算术运算的题目;
练习者根据显示的题目输入自己的答案,程序自动判断输入的答案是否
正确并显示出相应的信息。
"""
import random     ##导入随机数模块

count = 0         ##定义两个计数器
right = 0

while True:        ##开始死循环
    a = random.randint(0,100)  ##a,b为随机数
    b = random.randint(0,100)
    op = ['+', '-', '*', '/']  ##设表,表内容有加减乘除4种字符串
    s = random.choice(op)      ##s为表中随机一个字符串
    print('%d %s %d = ' %(a,s,b))  ##打印题目
    question = input('请输入你的答案:(q退出)')
    if s == '+':  ##如果随机的符号时‘+’,那么正确的计算结果是result=a+b
        result = a + b
    elif s == '-':
        result = a - b
    elif s == '*':
        result = a * b
    else:
        result = a / b
    if question == str(result):  ##当客户输入与正确结果相同
        print('回答正确')
        right +=1      ##两个计数器都加1
        count +=1
    elif question == 'q':
        break
    else:
        print('回答错误')
        count +=1           ##否则只有答题数量计数器加1

percent = right / count
print('测试结束,共回答%d道题,正确个数为%d,正确率为%.2f%%' %(count,right,percent * 100))

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值