python——字符串及练习

一、字符串的定义

# 定义一个字符串a = 'hello'# 有特殊字符时,需要转译c = 'I\'m a student'# 或者特殊字符用双引号引起来d = "I'm a student"print(a)print(c)print(d)12345678910

二、字符串的特性

(1)索引:通过字符串的下标来打印元素
(2)切片:
(3)重复
(4)连接
(5)成员操作符
(6)for循环(迭代)

# 1.索引print('1.索引')a = 'hello'# a[0] 表示a中的第一个元素print(a[0])# a[1] 表示a中的第二个元素print(a[1])print('2.切片')# 2.切片# 切片的规则:s[start:end:step] 从start开始到end-1结束,步长:stepprint(a[:3])    # 下标为3的元素之前的所有元素print(a[0:3])    # 第0个元素到第一个元素print(a[::-1])   # 倒序输出print(a[0:4:2])  # 第0个和第四个之间, 步长为2,输出a中元素print(a[1:])     # 除了第一个元素,其他元素全部输出# 3.重复print('3.重复')print(a*2)   # 把a中元素重复输出两次 # 4.连接print('4.连接')print(a+' python') # 5.成员操作符print('5.成员操作符')print('h' in a)    # 判断h是否在a中,如果在,就输出Trueprint('p' in a)    # 判断p是否在a中,如果不在,就输出False# 6.for循环(迭代)print('6.for循环(迭代)')for i in a:        print(i)12345678910111213141516171819202122232425262728293031323334
练习:回文数判断
num = input('Num:')if num == num[::-1]:        print('这是一个回文数')else:    print('这不是一个回文数')12345

三、字符串开头结尾的匹配

1、通过条件匹配文件名
filename = 'hello.loog'if filename.endswith('.log'):        print(filename)else:    print('error filename'12345
2、通过字符串的首尾来匹配
url1=input('请输入yum源路径:')url2=input('请输入ftp服务的路径:')url3=input('请输入http服务的路径:')if url3.startswith('http://'):        print('来自网页')else:        print('未找到网页')if url1.endswith('rhel'):        print('yum源已经配置好')else:        print('没有yum源')if url2.startswith('ftp'):        print('匹配正确')else:    print('匹配失败')123456789101112131415
3、去除两边空格
标题:首字母大写,其他字母必须小写upper     # 转换成大写isupper   # 判断是否大写rstrip    # 去除右边的空格,空格是广义的空格,不仅仅是空格键按出来的空格lstrip    # 去除左边的空格12345

如下:

In [1]: s='   hello   ' In [2]: sOut[2]: '   hello   ' In [3]: s.strip()Out[3]: 'hello' In [4]: s.rstrip()Out[4]: '   hello' In [5]: s.lstrip()Out[5]: 'hello '  123456789
练习:判断大小写和数字
# 判断字符串里每个元素是什么类型,一旦有一个元素不满足,就返回Falseprint('123'.isdigit())print('123abs'.isdigit()) # title(标题),判断某个字符串是否为标题# 标题:第一个字母大写,其余位置为小写 print('Akdsf'.istitle())print('AdsdaDS'.istitle())  # 判断某个字符串是否是大写或者小写 print('hello'.upper())         # 把hello以大写输出print('hello'.isupper())       # 判断hello是否为大写print('HELLO'.islower())       # 判断HELLO是否为小写print('HELLO'.lower())         # 把HELLO以小写输出 print('hello123'.isalnum())    # 判断hello123是否为字母或数字print('123'.isalpha())         # 判断123是否为字母print('qqq'.isalpha())         # 判断qqq是否为字母12345678910111213141516
练习:判断变量名是否合法
while True:        name = input('请输入变量名:')        if name == 'exit':                print('欢迎下次使用')                break        if name[0].isalpha() or name[0] == '_':                for i in name[1:]:                        if not(i.isalnum() or i == '_'):                                print('%s变量名不合法' %name)                                 break                 else:                         print('%s变量名合法' %name)         else:                print('%s变量名不合法' %name) 注:s[1;]:   # 第一个字符之后的所有字符123456789101112131415
练习:字符串的搜索与替换
s = 'hello world hello' # find:找到子串,并返回最小的索引print(s.find('hello'))print(s.find('world')) # rfind:找到子串,并返回最大索引print(s.rfind('hello'))print(s.rfind('world')) # 替换字符串中的所有’hello‘为’westos‘print(s.replace('hello','redhat'))123456789101112
练习:字符串的对齐
print('学生管理系统'.center(30))      # 居中print('学生管理系统'.center(30,'*'))  # 居中print('学生管理系统'.ljust(30,'*'))   # 左对齐print('学生管理系统'.rjust(30,'*'))   # 右对齐print('学生管理系统'.ljust(30,'+'))   # 左对齐12345

四、统计字符串的个数

print('hello'.count('l'))    # 统计hello中l的个数print('hello'.count('ll'))   # 统计hello中ll的个数print(len('hello'))          # 查看hello的长度123

五、字符串的分离和连接

# 分离字符串a='172.25.254.1'b=a.split('.')   # 以 . 为分隔符分离a字符串,并保存在b变量中print(b)         # 输出b变量print(b[::-1])   # 逆序输出b变量 date = '2019-1-16'date1=date.split('-')print(date1) # 连接字符串print(' '.join(date1))  # 指定用' '来连接被分离的变量print('/'.join(date1))  # 指定用’/‘来连接被分离的变量123456789
练习:缺勤不超过1次,连续不迟到3次以上,输出True
'A' : Absent,缺勤'L' : Late,迟到'P' : Present,到场chuqin = input('请输入出勤情况:') if chuqin.count('A') <= 1 and chuqin.count('LL') <= 1:        print('True')else:        print('False')    # 另外一种方法    print(chuqin.count('A') <= 1 and chuqin.count('LLL') == 0)1234567891011
练习:小米面试

给定一个句子(只包含字母和空格), 将句子中的单词位置反转,>单词用空格分割,
单词之间只有一个空格,前>后没有空格。
比如:
(1) “hello xiao mi”-> “mi xiao hello”

s = input('请输入:')b = s.split(' ')[::-1]print(' '.join(b))# 第二种方法print(' '.join(s.split()[::-1]))123456
练习:输入两个字符串,从第一字符串中删除第二个字符串中所有的字符
s1=input('请输入第一个字符串:')s2=input('请输入第二个字符串:')for i in s1:        for i in s2:                s1 = s1.replace(i,'')print(s1)123456
练习:随机生成加法的运算
import randomcount = 0right = 0while True:        a=random.randint(0,10)        b=random.randint(0,10)    p    rint('%d + %d = ' %(a,b))        player = input('请输入答案:')        if str(a + b) == player:                print('回答正确')                right+=1                count+=1        elif player == 'q':                break        else:                print('回答错误')                count+=1percent = (right / count)*100print('您一共答了%d道题,答对%d道题,正确率为%d%%' %(count,right,percent))12345678910111213141516171819
练习:随机生成加减乘除运算
import randomcount = 0right = 0op = ['+','-','*','/']while True:        a=random.randint(1,10)        b=random.randint(1,10)        s = random.choice(op)        print ('%d %s %d = '  %(a,s,b) )        question = input('请输入您的答案(q退出):')        if s=='+':                result =str( a + b)                print(result)                if question == result:                        print ('回答正确')                        right+=1                        count+=1                elif question == 'q':                        break                else:                        print('回答错误')                        count+=1        if s=='-':                result =str( a - b)                print(result)               if question == result:                        print ('回答正确')                        right+=1                        count+=1                elif question == 'q':                        break                else:                        print('回答错误')                        count+=1       if s=='*':                result = str( a * b)                print(result)                if question == result:                        print ('回答正确')                        right+=1                        count+=1                elif question == 'q':                        break                else:                        print('回答错误')                        count+=1        if s=='/':                result = str( a / b)                print(result)                if question == result:                        print ('回答正确')                        right+=1                        count+=1                elif question == 'q':                        break                else:                        print('回答错误')                        count+=1percent = right / countprint('测试结束,共回答%d道题,正确个数为%d,正确率为%.2f%%' %(count,right,percent * 100))123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
练习:快速生成验证码,内推码
import randomimport string code_str = string.ascii_letters + string.digitsprint('生成的随机数字和字母为(包括大写字母,小写字母和数字):',code_str)def gen_code(len=4):        return ''.join(random.sample(code_str,len))print('截取以4为步长的字符串为::',gen_code())print('生成10个以4为步长的字符串为:',[gen_code() for i in range(10)] )12345678
(0)

相关推荐

  • 关于Python的基础语法

    Python简单易学,但又博大精深.许多人号称精通Python,却不会写Pythonic的代码,对很多常用包的使用也并不熟悉.学海无涯,我们先来了解一些Python中最基本的内容. 变量 Python ...

  • ESP8266上的MicroPython入门(4)

    写了几篇文章,但是么有什么条理,想表达得太多.不知道该怎么去说,比较苦恼.昨天又鸽了... 真鸽了!!!其实再此之前还有一篇刷写固件得,我下篇写吧.我考虑到Python得问题,还有写几篇语言基础吧.那 ...

  • python世界中形影不离的一对情侣

    文末附有项目代码可供下载 input函数 input()是从控制台获取用户输入的信息,不论用户输入的是什么,input()都会返回字符串类型.<变量> = input(<提示性文字& ...

  • 收藏!20条非常实用的Python代码实例

    据说Python之父-Guido Van Rossum打算让CPython更快,速度直接翻五倍,这是实实在在的好消息. Python一直以来被诟病速度慢,影响开发效率,希望这次Guido老爷子能帮py ...

  • 笔记7:pyhon简单打印

    #!/usr/bin/env python#打印字符串print("hello,51zxw")print("are","you"," ...

  • python基础语法学习笔记

    学习来源:https://www.bilibili.com/video/BV1Vt411z7Kg?p=11 一.变量是什么? 变量来源于数学,是计算机语言中,能储存计算结果,或能表示值抽象的概念.变量 ...

  • Python2.7和3.7区别

    区别一:print语法使用 Python2.7   print语法使用   >>> print 'Hello Python' Python3.7   print语法使用   > ...

  • Python|字符串中第二大的数字

    问题描述给你一个混合字符串s,请你返回s中第二大的数字,如果不存在第二大的数字,请你返回-1.混合字符串由小写英文字母和数字组成.示例:输入:s = 'dfa12321afd'输出:2解决方案这是一道 ...

  • Python字符串及其简单格式化

    Python字符串及其简单格式化

  • python字符串去除头尾

    在读文件时常常得到一些\n和引号之类的符号,可以使用字符串的成员函数strip()来去除. 1.去除首尾不需要的字符 a= '"This is test string"' # st ...

  • 当铛噹!Python字符串速查表来啦~

    <Python字符串速查表> 大家好,我是阳哥. 在Python的应用实践过程中,经常会遇到字符串使用的问题,阳哥 花了点时间,专门整理了 Python 关于 string 的知识,主要内 ...

  • 可能是最全面的 Python 字符串拼接总结

    Python编程学习圈 1周前 在 Python 中字符串连接有多种方式,这里简单做个总结,应该是比较全面的了,方便以后查阅. 加号连接 第一种,通过+号的形式: >>> a, b ...

  • Python字符串格式化输出 & 函数(3.12)

    Python字符串格式化输出 &amp; 函数(3.12)

  • f-string: 改进的 Python 字符串格式化语法

    f-strings 是 Python 3.6 引入的一种非常棒的字符串格式化方法. 相比其他格式方法,f-strings 更易读.更简洁.更少犯错,也更快. 在了解为什么以及如何使用 f-string ...

  • RealPython 基础教程:Python 字符串用法详解

    字符串是一个由字符数据组成的序列.字符串处理是编程必备的技能,很少有应用程序不需要操作字符串的. Python 提供了丰富的运算符.函数和类方法来操作字符串. 通过本文,你将了解如何访问字符串以及提取 ...

  • Python 字符串相似性的几种度量方法

    字符串的相似性比较应用场合很多,像拼写纠错.文本去重.上下文相似性等. 评价字符串相似度最常见的办法就是:把一个字符串通过插入.删除或替换这样的编辑操作,变成另外一个字符串,所需要的最少编辑次数,这种 ...

  • Python 字符串前面加u,r,b,f的含义

    字符串前加u 后面字符串以 Unicode格式进行编码,一般用在中文字符串前面,防止因为源码储存格式问题,导致再次使用时出现乱码. exp = u"我是含有中文字符组成的字符串." ...