python字符串的用法_mystr='itheima' mystr[1]='a' print(mystr)-程序员宅基地

技术标签: python  笔记  后端  开发语言  

字符串的用法

#coding:utf-8
#字符串的三种风格
'''
print('hello world')
print("hello world")
print('''

''')
ch = '我'
print(ord(ch))  #ord只能处理单个字符

#字符串截取
mystr = '生活中的程序员真实写照、一款游戏一包烟,一台电脑一下午。一盒泡面一壶水,一顿能关一整天'
print(mystr[:]) #整个字符串
print(mystr[-15:-8])
print('notepad')
print(len('notepad'))   #字符串长度为7
print('---------','notepad'[1])
for i in 'notepad':
    print(i,end='')
mycmd='notepad'
print(mycmd[3])
print(mycmd[1:3])  #字符串的截取,1-3但不包括3
print(mycmd[1:8])  #字符串的截取,1-8但不包括8
print(mycmd[0:-1])
print(mycmd[-3:-1]) #正索引从0开始,负索引从-1开始
print('mycmd'*3)  #反复输如3次
mystr ='cmd0'
print(mystr[0])
#mystr[0]='A'
mystr = 'Amd'
print(mystr)
#字符串可以调到新的字符串地址,但是不可以改变常量字符串

#数据机构
#list简介
mylist = [1,2,3,4,5,6,7]
print(len(mylist))  #列表,容纳多个数据
mylist.append(8)    #增加数据
print(len(mylist))  #列表长
for data in mylist: #循环遍历列表
    print('-----',data)
print(mylist)

print(mylist[1:7])#索引截取,与字符串,正索引,负索引
print(mylist[4:-1])
print(mylist[:])#全部,不包含最后一个索引
print(mylist[:4])#默认不输入是开头
print(mylist[4:])#默认不输入是结尾
print(mylist*2) #乘法复制两次
print(mylist+mylist[4:6])   #加法列表叠加
#list可以被修改
list = [1,2,3]
list[1]=10  #list可以修改
print(list)

s = 'abcdefg'
print(s[::-1])#字符串倒写
print(s[::-3])#从倒是第一个开始每3个输出一个

#字符串赋值
mystr = 'calc'
print(mystr[1])
#mystr[1]='X' 字符串单个元素不可以赋值
mystr = 'xalc'  #字符串可以赋值新的常量字符串地址
#打印"calc"
print("\"calc\"")   #\'代表字符串中的'
print('ABCD\nFG')   #\n和\r不显示,换行作用

s = 'hello'
print(len(s))
#测量字符串长度用len

#字符在内存的编码
#ord函数可以看到字符的Unicode
s1 = 'hi,你好'
n = len(s)
for i in range(n):
    print(s1[i],ord(s1[i]))
#用程序测出"A-Z"和'a-z'的字符
c = 'ABCDEFGHIJKMNOPQRSTUVWXYZ'
c1 = 'abcdefghijkmnopqrstuvwxyz'
n = len(c)
for i in range(n):
    print(c[i],'---',ord(c[i]),c1[i],'---',ord(c1[i]), end='  ')
#总结;小写的a到z是97到122,大小的A到Z是65到90

#编码转为字符
#chr()函数可以将编码转换成符号或文字
a = chr(25105)
b = chr(20204)
c = chr(119)
d = chr(101)
print(a,b,c,d)
#5.字符串比大小
def compare(a,b):
    c = len(a)  #计算字符的长度
    d = len(b)
    if c<d:
        n = d
    elif c>d:
        n = c
    else:
        n = c
    for i in range(n):
        if a[i]>b[i]:
            return 1
        elif a[i]<b[i]:
            return -1
        elif a[i] == b[i]:
            return 0
        if m == n:
            return 0
        elif m>n:
            return 1
        else:
            return -1
print(compare("hi","wang"))

#4-1-1输入一个字符串,统计它包含的大小写字母的个数。

S = input('请输入英文')
n = len(S)
count = 0
xia = 0
for i in range(n):
    if ord(S[i]) >= 97 and ord(S[i]) <= 122:
        count += 1
    elif ord(S[i]) >= 65 and ord(S[i]) <=90:
        xia += 1
print("大写字母有{},小写字母有{}".format(count,xia))


#4-1-2输入一个字符串,统计它包含字母字符串和数字的个数
#s = input('请输入字符串')
#count = 0
#shu = 0
#xia = 0
#for i in range(len(s)):
#    if s[i]>='a' and s[i]<='z':
#        xia+=1
#    elif s[i]>='A' and s[i]<='Z':
#        count+=1
#    elif s[i]>='0' and s[i]<='9':
#        shu+=1
#print(shu,xia,count)
#4-1-3输入一个字符串,把他反向显示。
def reverseA(s):
    t = ''
    try:
        for i in range(len(s)-1,-1,-1):
            t = t+s[i]
    except Exception as err:
        print(err)
        return t

print(reverseA('redasf'))

s = 'sdfssdf'
print(len(s)-1)

#4-1-4输入一个字符串,去掉它左右多余的空格,如“   a bc "返回"a bc"
def trim(s):
    t = ''
    i = 0
    j = len(s)-1
    while i<=j and s[i] == ' ':
        i=i+1
        j = j - 1
    for k in range(i,j+1):
        t = t+s[k]
    return t
s = input("请输入字符串")
print(s,'length=',len(s))
t = trim(s)
print(t,'length=',len(t))
'''
# #字符串格式化
# c = 121
# print("今天是{:*^10d}".format(c))
'''
format格式有:
1. {:.2f}:保留小数点后两位
2. {:+/-.2f}:带符号保留小数点后两位
3. {:.0f}:不带小数
4. {:0>2d}:数字补零(填充左变,宽度为2)
5. {:x<4d}:数字补x(填充右边,宽带为4)
6. {:,}:以逗号分隔的数字格式
7. {:.2%}:百分比格式 
8. {:.2e}:指数记法
9. {:>10d}:右对齐(默认,宽度为10)
10.{:<10d}:左对齐(默认,宽度为10)
11.{:^10d}:中间对齐(宽度为10)
12.b d o x 分别是二进制,十进制,八进制,十六进制

num = 190
money = 2000
mystr = '和风成女神有%d个备胎,他花了%.2f元给女神买了手机'%(190,2000)
print(mystr)
#utf-8包含ACSII
#ACSII格式,没有中文,可以编译  utf-8站的空间较大
print(r'c\asfd\sfdsa\sadf\sadfasd\a')   #r节约时间,不用输入转义字符,特殊处理
print(u'sdfsadf')

#查看字符串帮助
print(dir(''))
mylist = dir("")    #dir遍历所有的属性返回的是一个列表list
print(mylist)    #[]包含了所有的函数,属性
for i in mylist:    #遍历打印
    print(help('\'\'.'+i))
'''
# #print(help("str".find))
# #字符串比较常见的函数
# mystr = 'hello python2 hello python3'
# print(mystr.capitalize())   #第一字符转换为大写
# print(mystr)
# #center(width,fillchar)
# #返回一个指定长度的宽度width 居中的字符串,fillchar为填充字符,默认为空
# mystr = '8888'
# for i in range(6,40,2):
#     for j in range((40-i//2),0,-1):
#         print(' ',end='')
#     print(mystr.center(i,'-'))
#
# mystr = 'hello python2 hello python3'
#
# #count 统计字符出现的次数
# print(mystr.count('he'))    #判断字符串出现的次数

#字符串常见的编码和解码
# b = bytes(1)    #bytes转换byte转换为二进制码,1字节
# print(b)    #\x16进制2^4=16 8位1个字节
# #1G = 1024mB=1024*1024KB=1024*1024*1024KB*8位
# a = bytes('中abc','utf-8')
# print(a)
# mystr = 'hello 中国'
# print(mystr.encode('utf-8'))    #encode返回二进制,用于写入文本
# print(b'hello '.decode('utf-8'))  #将二进制转换位文本
# #编码的容错行
# #utf-8一个汉字两个字节,另一个表示字节结束,一个字节表示开始
# a = bytes('中国你好abc','gbk')  #不同的编码大小不一样
# print(a)
#utf-8 两个字符表示汉字,一个字符汉字表示结束,3个字符
# print(bytes('我','utf-8'))
# print(bytes('我的','utf-8'))
# print(bytes('我的喔','utf-8'))
#gbk 两个字符表示一个汉字,没有结束
# print(bytes('我','gbk'))
# print(bytes('我的','gbk'))
# print(bytes('我的喔','gbk'))
# print(b'\xce\xd2\xb5\xc4\xe0\xb8'.decode('gbk'))
# #print(b'\xce\xd2\xb5\xc4\xe0\xb8'.decode('utf-8'))
# #decode,将二进制转化为字符串,指定编码格式
# print('你好中国'.encode('utf-8'))
# print(b'\xe4\xbd\xa0\xe5\xa5\xbd\xe4\xb8\xad\xe5\x9b\xbd'.decode('gbk','ignore'))   #"ignore"解码识别,强行解码
# print(type('hello'.encode('utf-8')))    #encode字符串转换为二进制,decode()二进制转换为字符串

# mster = 's2'    #\t转换为空格,默认八个,tabsize步长
# print(mster.expandtabs(tabsize=1))
'''
eval:只能处理字符串,字符串的数值或者表达式
exec:文本当语句执行

print('-'.join('ahgkhgjjk'))    #ahgkhgjik每个字符串之间插入一个字符串间隔
for i in range(5,50):
    print('8888'.rjust(i,'*'))

#按行切割
mystr = '''
# 十年生死两茫茫,写程序,到天亮。
# 千行代码,Bug何处藏。
# 纵是上线又怎样,朝令改,夕断肠。
# 领导每天新想法,天天改,日日忙。
# 相顾无言,唯有泪千行。
# 每晚灯火阑珊处,夜难寐,又加班。
'''
# splitlines() 按照行('\r', '\r\n', \n')分隔,返回一个包含各行作为元素的列表
# ,如果参数 keepends 为 False,不包含换行符,如果为 True,则保留换行符。
mylist = mystr.splitlines(True) #包含True,换行两次,不包含换行一次
for date in mylist:
    print(date)
# mystr = 'A1021231231231231 # waefrwafawfa # www.asdfas'
# mystr = mystr.split('#')
# print(mystr)
print('hello china'.swapcase()) #把大小的字母改成小写,把小写的字母改成大写
print('Sfdafasdfsdf'.swapcase())
print('sadfasdfD'.swapcase())
print('AFAFADF'.swapcase())
print('123'.zfill(40))  #金融数据
'''
#翻译截取
#make
# mystr = 'hello python 我,我,你'
# table = str.maketrans('aeiou','12345')  #变成要翻译的对象,第一个参数为要改变的值,第二个为改变的值
# print(mystr.translate(table))   #翻译替换
#字符串的模板
from string import Template #string文件导入Template
print(type(Template))
mystr = Template('hi,$name 你是  $baby')
print(mystr.substitute(name='小明',baby='lovely baby'))
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_46213188/article/details/121118341

智能推荐

表单从gb2312的页面提交到utf-8页面,或者表单从utf-8的页面提交到gb2312页面的解决办法...-程序员宅基地

文章浏览阅读420次。·在不同编码的页面之间提交表单 ,可使用accept-charset属性,此属性FF支持,但是IE不支持--------------------------------------------------------------------1. 表单从gb2312的页面提交到utf-8页面时。即 ·<form method="post" action="2.php" accept-cha..._前端 utf-8 gb2312

nodejs 之 fs模块-程序员宅基地

文章浏览阅读36次。Node.js的文件系统的Api//公共引用var fs = require('fs'),path = require('path');1、读取文件readFile函数//readFile(filename,[options],callback);/** * filename, 必选参数,文件名 * [options],可选参数,可指定flag...

推荐系统中的文本挖掘与情感分析_基于机器学习文本情感分析的商品评价推荐系统-程序员宅基地

文章浏览阅读3.8k次。作者:禅与计算机程序设计艺术 《推荐系统中的文本挖掘与情感分析》引言1.1. 背景介绍随着互联网技术的快速发展,推荐系统作为人工智能领域的一个重要分支,已经深入到我们生活的方方面面。推荐系统通过收集用户的历_基于机器学习文本情感分析的商品评价推荐系统

Android Studio无法自动填充代码的可能原因及解决办法_android studio没有代码补全-程序员宅基地

文章浏览阅读909次。在网上看了有的是setting里面的设置问题,也有的是因为该软件的节能模式模式开了 这俩原因在CSDN上面都能搜到。我发现我的是因为 代码不做<>范围内,试试在需要自动填充的代码前面,先打一个<,应该就可以解决了。_android studio没有代码补全

分享 11 张 Python 自学知识点速查表,拿走不谢!_python学习表-程序员宅基地

文章浏览阅读302次。分享 11 张 Python 自学知识点速查表,拿走不谢!分享 11 张 Python 知识点速查表,文末有领取方式。内容是我刚从国外网站上搬运的,新鲜出炉,全是英文版没有中文翻译。目录如下:这些知识点循序渐进,由浅入深,全部制作成了 pdf,方便阅读。内容丰富,包括了基础知识点,例如关键字、数据结构、复杂数据类型、类、函数、面向对象编程等等,也有面试问题,以及 Numpy 和机器学习的内容。其中部分内容的截图如下:这些速查表制作比较美观,图文配色很养眼,适合基础入门的同学食用。_python学习表

Virtualbox源码分析11 CPU manager3:CPUID_uebx-程序员宅基地

文章浏览阅读1.5k次。这一章里,介绍模拟CPUID和CPU寄存器访问11.1 GuestOS CpuId/MSR初始化cpumR3InitCpuIdAndMsrs在CpumInit()函数里调用int cpumR3InitCpuIdAndMsrs(PVM pVM, PCCPUMMSRS pHostMsrs){ // 读取配置 CPUMCPUIDCONFIG Config; cpumR3CpuIdR..._uebx

随便推点

qq文件对方接收后一定会有提示吗_QQ接收别人发的文件怎么设置不弹出接收信息...-程序员宅基地

文章浏览阅读6.4k次。QQ接收别人发的文件怎么设置不弹出接收信息以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!QQ接收别人发的文件怎么设置不弹出接收信息系统设置 消息窗口 把允许来消息时弹出窗口前面的勾去掉希望能帮到你qq怎么设置锁屏接收信息如果是安卓系统,打开设置——应用——找到QQ程序——选择显示悬浮窗。超级QQ怎么设置不接收信息现在还..._qq传输完文件后不提醒

PIL保存二维numpy数组(2,2)为灰度图和RGB图_pil只能保存灰度图像吗-程序员宅基地

文章浏览阅读6.6k次,点赞3次,收藏9次。如果使用cv2,直接保存二维数组就可以了,只是只能保存为灰度图(8bit);如果偏要保存为RGB图,则需要使用np.stack进行深度的堆叠(每个深度R/G/B的值是相同的),然后再保存就是RGB图了如果使用的是PIL,则没那么简单了,首先PIL 只接受浮点数,其次,如果要将二维数组保存为RGB图,需要使用convert('RGB')转化为RGB映射后,再保存;或者,如果只想保存为灰度图,则也必须使用convert('L')进行转换后,再保存就可以了具体代码如下:array = np.arra.._pil只能保存灰度图像吗

关于重装系统后开始菜单栏anaconda3文件夹消失问题的解决办法_开始菜单没有anaconda3-程序员宅基地

文章浏览阅读2.6k次。关于重装系统后开始菜单栏anaconda3文件夹消失问题的解决办法问题描述:初次安装成功,各项功能都可正常使用。重装系统后想要使用anaconda prompt安装扩展包,却发现连anaconda文件夹都没有。解决过程:查看了其他人的解决办法,大致有以下几种:1.python .\Lib\_nsis.py mkmenus2.conda update menuinstconda install -f console_shortcut ipython ipython-notebook ipython-_开始菜单没有anaconda3

signature=82fc81989e4b7cdba7f16c3353e0437e,英语翻译=E5=B0=8A=E6=95= =AC=E7=9A=84=E7=A5=9D=E5=85=88=E7=94...-程序员宅基地

文章浏览阅读708次。=E3=80=80=E3=80=80=E6=89=BF=E8=92=99=E8=B4=B5==E5=85=AC=E5=8F=B8=E5=AF=B9=E6=9C=AC=E4=BA=BA=E7=9A=84=E4=BF=A1=E4=BB=BB=E4==B8=8E=E9=82=80=E8=AF=B7=EF=BC=8C=E8=B0=A8=E8=A1=A8=E4=B8=87=E5=88=86=E6=84==9..._8b=e9=9d

解决IDEA的Range [0, 3) out of bounds for length 2错误-程序员宅基地

文章浏览阅读1.4k次。idea显示Range [0, 3) out of bounds for length 2_range [0, 3) out of bounds for length 2

555定时器-程序员宅基地

文章浏览阅读431次。定时器是一种多用途的数字-模拟混合集成电路,可极方便的构成施密特触发器、单稳态触发器和多谐振荡器,其简化原理图及引脚定义如下所示3个绿色电阻,电阻值为5K;2个黄色和粉色比较器;1个紫色SR触发器;1个蓝色放电三极管引脚定义PINNAMEI/O1GNDGround2TRIGITRIG _555定时器

推荐文章

热门文章

相关标签