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

智能推荐

我说我不会Mybatis-Plus,他说你看这一篇试试-程序员宅基地

文章浏览阅读449次。在相同的Mapper接口中,可以定义自己的方法,并在对应的XML文件中为这些方法提供SQL语句或Mybatis查询逻辑。

基于OpenCV的火焰检测(三)——HSI颜色判据-程序员宅基地

文章浏览阅读160次。上文向大家介绍了如何用最简单的RGB判据来初步提取火焰区域,现在我要给大家分享的是一种更加直观的判据——HSI判据。 为什么说HSI判据是更加直观的判据呢?老规矩,先介绍一下HSI色彩模型: HSI颜色模型用H、S、I三参数描述颜色特性,其中: H表示颜色的色调,它表示人的感官对不同颜色的感受,如红色、绿色、蓝色等,它也可表示一定范围的颜色,如暖色、冷色等..._c# 通过hsi进行颜色判断

实验四python程序设计之文件_python程序设计实验报告八:文件-程序员宅基地

文章浏览阅读560次。安徽工程大学Python程序设计实验报告班级物流191 姓名郭森学号3190505134 成绩日期2020.6.2 指导老师修宇实验八 文件【实验目的】掌握读写文本文件或 CSV 文件,进而对数据进行处理的方法。【实验条件】PC机或者远程编程环境【实验内容】完成二个编程题。1、水浒传词频统计水浒传-词频统计(1)描述使用词频统计的方法,生成《水浒传》出场次数最多的10个人物的姓名。(2..._根据所给素材:ctiyname.txt及不完整代码,参考创建项目,编写代码实现解析,并输出如

域名--泛解析-程序员宅基地

文章浏览阅读78次。背景:主域名下多数子域名访问后直接跳转至www域名的服务。百度百科--域名泛解析:在域名前添加任何子域名,均可访问到所指向的WEB地址。也就是客户的域名#.com之下所设的*.#.com全部。泛域名解析:利用通配符* (星号)来做次级域名以实现所有的次级域名均指向同一IP地址。子域名挖掘: 泛解析这个问题的解决方法很简单,向DNS请求*记录,然后把枚举子域名回来的..._dns枚举泛解析

基于对赋值为随机数的数组实现打印、求和及最大值、平均值的计算,排序问题_编写一个方法,对数组的元素用[0,100)之间的随机数进行初始化,初始化之后对数组进-程序员宅基地

文章浏览阅读206次。我们先定义一个数组x并为其分配储存空间,如下:int[] x=new x[100] 想要对数组中的每一个元素进行随机数赋值,需要用到循环控制语句,这里以for循环为例:定义一个变量i并赋值为0,作为for循环的起始条件;需要注意的是,数组的下标是从0开始的,比如x[0]到x[99],代表数组的长度为100。所以再写入判断语句的时候,不能写成a<=x.length;控制变量语句应写入自加语句。在循环体里,对x[a]进行随机数赋值,以0到100为例如图: 完成对x[a]的赋值之后,开始写入打印代_编写一个方法,对数组的元素用[0,100)之间的随机数进行初始化,初始化之后对数组进

为什么eMule总是未连接到服务器-程序员宅基地

文章浏览阅读1k次。<一>安装和版本问题1) eMule对Windows有什么要求?eMule能在Windows 95版本以上的Windows操作系统下运行。1个好的P2P软件需要好的拨号网络的支持,所以Windows 98和Windows ME的比较差网络运行情况可能会影响eMule的发挥;相对来说Windows 2000和Windows XP更适合使用eMule。2) 弹出错误信息说oleacc.dl..._emule v0.50b 最新服务器未连接

随便推点

会声会影软件2023破解版最新激活序列号_会声会影2023-程序员宅基地

文章浏览阅读3.3k次。会声会影2023简单易用,具有拖放式标题、转场、覆叠和滤镜,色彩分级、动态分屏视频和新增强的遮罩创建器,超越基本编辑,实现影院级效果。优化分屏剪辑功能,简化多时间轴编辑的工作流程,让创作更轻松。添加趣味性3D标题,内置NewBlueFX和proDAD转场和防抖插件,一键防抖和校准色彩。使用MultiCam Capture Lite可以轻松录制并编辑视频教程、产品演示、游戏视频、在线课程。会声会影2023的智能工具,使用AI面部识别对效果最好的照片和视频片段进行分析,提取,并编译到可以项目中,将我们的精彩时刻_会声会影2023

Spring Boot 中的异步调用_springboot异步调用-程序员宅基地

文章浏览阅读1w次,点赞9次,收藏53次。Spring Boot 中的异步调用通常我们开发的程序都是同步调用的,即程序按照代码的顺序一行一行的逐步往下执行,每一行代码都必须等待上一行代码执行完毕才能开始执行。而异步编程则没有这个限制,代码的调用不再是阻塞的。所以在一些情景下,通过异步编程可以提高效率,提升接口的吞吐量。这节将介绍如何在Spring Boot中进行异步编程。要开启异步支持,首先得在Spring Boot入口类上加上@EnableAsync注解:@SpringBootApplication@EnableAsyncpublic _springboot异步调用

VK1668 SSOP24兼用TM1668的LED数码驱动芯片_sm1668led驱动芯片与tm1668芯片可通用?-程序员宅基地

文章浏览阅读1.6k次。概述VK1668 是 1/5~1/8 占空比的 LED 显示控制驱动电路。由 10 根段输出、4 根栅输出、3 根段/栅输出,1 个显示存储器、控制电路、键扫描电路组成了一个高可靠性的单片机外围 LED 驱动电路。串行数据通过4线串行接口输入到 VK1668采用 SOP24 的封装形式。功能特点1.CMOS 工艺2. 低功耗3.多种显示模式:设置选择段和位的个数(4~7 位,10~1..._sm1668led驱动芯片与tm1668芯片可通用?

com wechat.class.php,wechat-php-sdk/wechat.class.php at master · l953422179/wechat-php-sdk · GitHub...-程序员宅基地

文章浏览阅读127次。/***微信公众平台PHP-SDK, 官方API部分* @author dodge * @link https://github.com/dodgepudding/wechat-php-sdk* @version 1.1* usage:* $options = array(*'token'=>'tokenaccesskey' //填写你设定的key*);* $weObj = n..._public static function message($msg='',$link=''){ $datatype = ifilter::a

交流电过零点检测电路总结_交流过零检测电路-程序员宅基地

文章浏览阅读7.3k次,点赞3次,收藏32次。交流电的过零点检测方案较多,目前较常见的也是我之前所使用的方案如图1所示:图1 交流电光耦过零检测电路图1的电路可以检测到交流电经过零点的时间,但是它存在诸多的弊端,现列举如下:电阻消耗功率太大,发热较多。220V交流电,按照有效值进行计算三个47K的电阻平均每个电阻的功率为220^2/(3*47k)/3=114.42mw。对于0805的贴片电阻按照1/8w的功率计算,当前的消耗功率接近其额..._交流过零检测电路

MATLAB SOR统计滤波_sor滤波-程序员宅基地

文章浏览阅读202次。具体来说,我们采用了SOR算法求解图像中每个像素点周围的平均值,从而实现了一种基于统计特征的图像滤波方法。在本文中,我们将使用SOR算法实现统计滤波。具体来说,我们将考虑针对图像进行滤波,对于每一个像素点,我们将其周围的像素点取平均值,从而得到该像素点的新值。在本文中,我们将会讨论如何使用MATLAB实现SOR统计滤波。SOR算法是一种基于松弛因子的迭代算法,可以用于求解一般的n元线性方程组Ax=b。统计滤波是一种信号处理方法,旨在通过对信号的统计特征进行操作来实现滤波效果。MATLAB SOR统计滤波。_sor滤波

推荐文章

热门文章

相关标签