python(day019——字符串练习)

python中chr()函数和ord()函数的用法 Python内置函数 一,chr()函数 格式:Chr(<数值表达式>) 说明:函数返回值类型为String,其数值表达式值取值范围为0~255。 以下是 chr() 方法的语法: chr(i) i – 可以是10进制也可以是16进制的形式的数字。 返回值是当前整数对应的 ASCII 字符。 让我们来看看有些什么: for i in range(256): print(chr(i),end='') 结果:   !"#$%&amp 阅读详情

1.实现lower函数

import string
def lower_word(a):
    if not isinstance(a,str):
        return None
    result=""
    for i in a:
        if i in string.ascii_uppercase:
            result+=chr(ord(i)+32)
            #result+=i.lower()
        else:
            result+=i
    return result

print(lower_word("Hello WORLD"))

2.实现upper函数

import string
def upper_word(a):
    if not isinstance(a,str):
        return None
    result=""
    for i in a:
        #if i in string.ascii_lowercase:
        if i<="z" and i>="a":
            result+=chr(ord(i)-32)
        else:
            result+=i
    return result

print(upper_word("Hello WORLD"))

3.实现find函数,返回所有位置

def find(a,dest_str):
    "找到所有dest_str并返回位置"
    if not isinstance(a,str) or not isinstance(dest_str,str):
        return None
    flag=0
    result=[] #储存dest_str位置
    while flag<len(a):
        if a[flag:(flag+len(dest_str))]==dest_str :
            result.append(flag)
            flag+=len(dest_str)
        else:
            flag+=1
    return result

print(find("hello world ll","ll"))
#结果:[2, 12]

4.实现strip函数

def strip(s,del_str=" \r\n\r\n"):
    if not isinstance(s,str):
        return None
    result=""
    flag1=0
    while 1:
        if s[flag1:flag1+len(del_str)]==del_str:
            result=s[flag1+len(del_str):]
            flag1+=len(del_str)
        else:
            break
    if result=="":
        result=s
    else:
        s = result

    flag2=0

    while 1:
        if s[len(s)-flag2-len(del_str):len(s)-flag2:]==del_str:
            result = s[:len(s)-flag2-len(del_str)]
            flag2 += len(del_str)
        else:
            break
    return result


print("1",strip("     hello    "))
print("2",strip("**hello***","*"),)
print("3",strip("      hello***","*"))
print("3",strip("**    hello%#$  ","*"))
print("1",strip("     hello    ","\n"))

#缺陷:默认值
def strip(s,del_str=" \r\n\t"):
    """
    算法:
    1 声明一个result的str变量为空字符串
    2 声明一个left的变量为0
    3 正序遍历s,判断前面的元素是否属于del_str中的一个,如果是什么都不做
             如果不是把这个坐标赋值给left
    4 声明一个right的变量为-1
    5 倒序遍历s,判断后面的元素是否属于del_str中的一个,如果是什么都不做
             如果不是把这个坐标赋值给right
    6 return s[left:right+1]

    """
    left=0
    right=-1
    for i in range(len(s)):
        if s[i] not in del_str:
            left=i
            break

    for i in range(-1,-len(s)-1,-1):
        if s[i] not in del_str:
            right=i
            break
    if right==-1: 
        right=len(s)
    return s[left:right+1]

print("1",strip("     hello    "))
print("2",strip("**hello***","*"),)
print("3",strip("      hello***","*"))
print("4",strip("**    hello","*"))
print("5",strip("**    hello%#$  ","*"))

5.实现swapcase函数:

def swapcase(s):
    if not isinstance(s,str):
        return None
    result=""
    for i in s:
        if "A"<=i<="Z":
            result+=chr(ord(i)+32)
        elif "a"<=i<="z":
            result+=chr(ord(i)-32)
        else:
            result+=i
    return result

print(swapcase("Hello WORld"))

6.实现capitalize函数:

def capitalize(s):
    """
    capitalize函数计算的结果首字母大写,后面的字母如果是大写则转为小写
    """
    if not isinstance(s[0],str):
        return None
    l=s.replace(s[0],s[0].upper())
    result=l[0]
    for i in l[1:]:
        result+=i.lower()

    return result

print(capitalize("hELLO"))

7.实现replace函数

def replace(s,source_str,dest_str,times):
    """
    算法:
    用split,把source_str切掉,用dest_str再join
    """
    if not isinstance(s,str):
        return None
    l=[]
    result=""
    l=s.split(source_str,times)
    result=dest_str.join(l)
    return result


print(replace("hello","l","pp",1))
#结果:hepplo
def replace(s,source_str,dest_str,times):
    """
    1 定义一个result字符串变量
    2 对应一个postion的列表变量,存放所有要替换字符串的起始位置
    3 找到s中所有的source_str所在的坐标起始位置,放到position
    4 用while基于位置做遍历,如果坐标是source_str所在的坐标起始位置,
      则直接拼接dest_str,跳过source_str长度的坐标位置,继续遍历
      如果不是起始位置,则直接拼接到result中。
    5 返回执行结果
    """
    if not isinstance(s,str) or not isinstance(source_str,str) or not isinstance(dest_str,str):
        return None
    result=""
    position=[]
    dest_len=len(source_str)
    i=0
    while i<len(s):
        if s[i:i+dest_len]==source_str:
            position.append(i)
            i+=dest_len
        else:
            i+=1
    #找到要替换词所在位置
    print(position)

    i=0
    flag=0
    while i < len(s):  #替换操作
        if flag<times:
            if i in position:
                result+=dest_str
                i+=len(source_str)
                flag+=1
            else:
                result += s[i]
                i += 1
        else:
            result += s[i]
            i += 1
    return result

print(replace("hellol","l","pp",2))



8.综合练习

#输入一组数字,每个数字加1输出
num=input("请输入一组数字:")
l=list(num)
l1=[]
for i in l:
    l1.append(str(int(i)+1))
print(l1)
print(int("".join(l1)))


#输入一组数字,每个数字加1输出
num=input("请输入一组数字:")
l=list(num)
l1=[]
for i in l:
    l1.append(str(int(i)+1))
print(l1)
print(int("".join(l1)))

#输入一组数字,每个数字加1输出
num=input("请输入一组数字:")
length=len(num)
num=int(num)+int(length*"1")
print(num)

#生成五个1:11111
result=0
for i in range(5):
    result+=pow(10,i)
print(result)

#生成五个1:11111
result=1
for i in range(4):
    result=result*10+1
    print(result)
print(result)
#删除字符串中的小写字母
s="abcABCDJE@*$@etCMDejf!"
new_s=""
for i in s:
    if i>="a" and i<="z":
        pass
    else:
        new_s+=i
print(new_s)

#统计list有多少不同类的数据,并生成字典展示
a=[1,1.1,[2,3],"e",2.2,2,{1:2},[1,2,3],"stt"]
result={}
for i in a:
    flag=str(type(i))[8:-2]
    if flag in result.keys():
        result[flag]+=1
    else:
        result[flag]=1

print(result)

#方法二:
a=[1,1.1,[2,3],"e",2.2,2,{1:2},[1,2,3],"stt"]
def list_type(l):
    d={}
    for i in l:
        d[str(type(i))]=d.get(str(type(i)),0)+1
        #Python 字典(Dictionary) get() 函数返回指定键的值,如果值不在字典中返回默认值。
    return d
print(list_type(a))
#翻转字符串
>>> a="helloworld"
>>> a[-1::-1]
'dlrowolleh'
>>> "".join(reversed(list(a)))
'dlrowolleh'
>>> from functools import reduce
>>> result = reduce(lambda x,y:y+x,a)
>>> result
'dlrowolleh'

引用:https://www.cnblogs.com/taceywong/p/8045127.html

一种抑制undershoot/overshoot锐化算法介绍 一、USM 当增强图像的边缘、细节信息等高频信息时,图像的锐化视觉效果会得到较大提升。提高图像锐化的一种经典算法为非锐化掩码(UNsharp Masking)技术。该技术首先通过高通滤波并与缩放系数相乘,其结果再与原始图像相加,即可对高频信息进行增强。其主要的原理如下图所示: 其中,对图像进行高通滤波的另一种等效方法为:原始图像减去原始图像的低通滤波图像,其结果被称之为“掩码”。因此,上述的USM方法可以表示为: 原始图像减去原始图像低通滤波之后的图像得到掩码M。 2.掩... 阅读详情

相关推荐

Ansys口腔正畸有限元分析:从几何处理到接触设定的全流程解析

本文详细解析了Ansys在口腔正畸有限元分析中的全流程应用,从几何处理到接触设定,帮助医生精准预测牙齿移动趋势。通过有限元建模技术,可同时观察牙齿-牙周膜-牙槽骨的力学响应,显著提升矫治效果预测准确率。文章还分享了实用技巧和参数设置建议,适用于正畸医生和工程师。

weixin_30897233的博客 348

Python ord()函数与chr()的简单用法

ord()的作用是将字符转换成ASCII码: 输出如下: chr可以将ASCII码转换回字符: 输出如下: 这两个函数配套使用主要用来完成与ASCII码有关的一些运算。在一些语言如C++中,这一过程是很容易完成的,例如我们要将字符A变成字符B只需要: 输出为: 而在Python中则需要稍微麻烦些,需要先用ord函数显式地将字符转为int型的ascii码,然后再利用chr转回: 输出为:...

xiongxyowo的博客 4357

Hcaptcha验证码破解深度解析:从环境检测到n值算法的攻防实战

本文深入解析Hcaptcha验证码的攻防技术,从环境检测到n值算法的全面突破策略。详细介绍了浏览器指纹模拟、图像识别工程化解决方案及协议层逆向分析,为安全研究人员提供高效破解Hcaptcha的实战指南。

weixin_42563415的博客 375

PHP函数篇之掌握ord()与chr()函数应用,处理汉字

中文字符编码研究系列第三期,PHP函数篇掌握ord()与 chr()函数应用,上期[PHP基础篇详解ASCII码对照表与字符转换]一文中了解了ASCII码和字符转换的方法,但使用时发现在字符转换之间需要两个特殊的函数,用于字符与十进制之间的转换,ord()函数把字符转换为十进制数字,chr()函数把十进制数字转化为字符,在二进制,八进制,十进制与十六进制之间充当桥梁的作用。  一,ord()

IT技术宅-北方的刀郎 1806

Cocos Creator 3.x 实战:用脚本动态加载Spine动画,告别resources硬编码

本文详细介绍了Cocos Creator 3.x中Spine动画的动态加载与挂点系统实战技巧。通过Asset Bundle替代传统resources硬编码方式,实现资源的高效管理和热更新支持,同时结合TypeScript强类型和单例模式优化加载流程。文章还深入探讨了跨平台适配、挂点编程方案及性能优化策略,帮助开发者提升游戏开发效率与灵活性。

weixin_42526353的博客 267

SD-WAN组网案例——数据中心

SD-WAN组网案例——数据中心

2301_78457663的博客 706

Python英文字母大小写转换

def ltu(s): n=’’ for a in (s): if 96<ord(a)<123: a=chr(ord(a)-32) elif 64<ord(a)<91: a=chr(ord(a)+32) n+=a return n s=input() u=ltu(s) print(u)

qq19970496的博客 3762

XDMA流传输模式

XDMA 流传输模式(Streaming DMA)​ 是 Xilinx FPGA 通过 PCIe 与主机进行 ​实时流式数据传输 的核心机制,

浩瀚之水的专栏 3435

小白学Python ——day3

实训第三天内容: day03-实训3 0、ascii值和字符之间的转化     ord() : 将字符转化为整型     chr() : 将整型转化为字符 1、while循环     什么是循环?一直在重复的做某件事情     到代码中     格式:         while 表达式:             语句块(循环体)     过程:首先判断表达式的真假,如果是真的,执行语句块,再...

zhaoluwei的博客 575

【Segment Anything Model】三:SAM模型微调自定义数据集,更改混合提示方式:点,框,点框混合

1.微调SAM预备知识。

cvxiayixiao的博客 1万+

Vue3 - Element Plus 表格组件 el-table “表格行数据中又嵌套了二维对象数组“,按平级循环渲染(嵌套数组视为同级行数据), 对嵌套的数组循环展示为表格,智能合并行或列详细教程

vue3,nuxt3,element-plus,table表格组件,el-table,vue3element表格组件,数据中有二维数组怎么遍历循环显示,表格数据带二级数组怎么循环渲染显示,表格数据中存在一个数组要怎么才能显示到表格,el-table表格合并详细教程示例,table表格如果对象里面还有对象数组那该怎么去渲染,平常都是数组中一个对象渲染成一行,每行中还有嵌套数组怎么办,每个行数据下还有一个数组怎么显示,怎么把表格相同的数据合并为一行,合并上下两行相同数据单元格,合并行或列如果遇到相同单元格就合

🏆 前端领域优质创作者 1万+

Python 程序设计入门(019)—— 字符串的 format() 方法详解

format() 方法的使用

睿思达DBA 6798

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

python算法-判断尾数&两个字符串是变位词--Day019

有个01字符串str,只会出现3个单词,两字节的单词10或11,一字节的单词0,判断字符串中最后一个单词的字节数示例:输入str=“100”,输出1,因为str由两个单词构成,10和0输入str=“1110”,输出2,因为str由两个单词构成,11和10return 2for i in range(-2,-len(str)-1,-1):#` 使用 `range` 函数逆向遍历字符串的索引。

weixin_47970750的博客 590

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

100 个 Python 小例子(练习题)

for j in range(2,round(math.sqrt(i))+1):if i%j==0:breakelse:print(i)**题目:**打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。**程序分析:**利用for循环控制100-999个数,每个数分解出个位,十位,百位。for i in range(100,1000):s=str(i)one=int(s[-1])ten=int

2401_89789477的博客 1785

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

<LeetCode天梯>Day019 验证回文串(双指针) | 初级算法 | Python

????作者简介:大家好,我是车神哥,府学路18号的车神???? ????个人主页:应无所住而生其心的博客_府学路18号车神_优快云博客 ????点赞➕评论➕收藏 == 养成习惯(一键三连)???? ????本系列主要以刷LeetCode(力扣)网站的各类题为标准,实现自我能力的提升为目标⚡ ⚡希望大家多多支持????~一起加油 ???? 专栏《LeetCode天梯》 星期天,立冬,喜大普奔,鹅毛大雪,xdm,北京下爆雪了,好激动呀,穿上你们小棉袄吧!疫情依旧反复,大家带好口罩啊~ 继续继续,来,今

车手只需要车和手,压力来自轮胎 978

入门学习-Python-小甲鱼学习资料-Day019-函数:我的地盘听我的

根据视频自己练习 : 课后练习题 1、函数与过程:过程(procedure)是简单的,特殊且没有返回值的;函数(Function)有返回值 Python严格来说只有函数没有过程 2、局部变量:在局部生效如在函数中定义的变量 3、全局变量:作用于整个模块 函数内若试图修改全局变量,Python会新建一个同名局部变量用于存储修改值,原全局变量的值不变 测试题: 0. 下边程序会输入什么? def ...

seven1levin的博客 401

Python脱产8期 Day019 2019/5/8

random模块 1.单例集合随机选择1个值:random.choice(item) #print(random.choice([1,'23',[4,5]])) # 1或者23或者[4,5] 2.单例集合随机选择n个:random.sample(item, n) #print(random.sample([1,'23',[4,5]],2)) #列表元素任意2个组合 3.洗牌单列集合...

weixin_34306593的博客 120

Python Day019:JSON、pickle、hashlib、hmac、shutil、shelve模块

## JSON模块 ```python json语音,是一种有语法规范的字符串,用来存放数据,完成各种语眼的数据交互。 1,就是{},[]的组合,{}存放双列信息(类比为字典),[]存放单列信息(类比为列表)。 2,{}中的key必须是""包裹的字符串。 3,{}的value与[]中支持的值的类型:int|float|str|dict|list|bool|null ...

weixin_30399055的博客 131

【Python学习】Day-019 数据持久化

数据持久化

ChenAi_140的博客 319

Python学习--day 03

Python--day 03012.第一个python程序013.介绍命名规则014.变量 012.第一个python程序 013.介绍命名规则 014.变量

qinshimingyue27的博客 156

PYTHON 基础-DAY2 20210401

目录014 链式赋值、系列解包赋值、常量015 内置数据类型-基本算术运算符016 整数017 浮点数018 时间表示019 多点坐标020 布尔值021同一运算符-整数缓存问题022-029 字符串022 unicode字符集、三种创建字符串方式、len()023 转义字符、字符拼接、字符串复制、input()输入024 str()、[]提取字符、replace()替换、内存分析025 切片slice操作、逆序026 split()分隔、jion()合并、join()效率测试027 驻留机制、内存分析、字

weixin_47442524的博客 172

Day13零基础入门python第019讲课后测试题及答案:我的地盘听我的

0.下边程序会输出什么? def next(): print('我在next()函数里...') pre() def pre(): print('我在pre()函数里...') next() 打印 我在next()函数里... 我在pre()函数里... 1.请问一下这个函数有返回值吗? def hello(): print('hello fishc!') 有返回值,如果函数没有return语句也是有...

qq_38016547的博客 275

day 019 常用模块

主要内容: 1模块的简单认识 2collection模块 3time时间模块  4random模块  5os模块  6sys模块 一模块的简单认识 引入模块的方式:    1import (常见方式)    2 from xxx import 例子: from collections import Itera...

weixin_30363817的博客 82

python学习之老男孩python全栈第九期_day019作业

# 计算时间差 1 import time 2 start_time = time.mktime(time.strptime('2017-09-11 08:30:00','%Y-%m-%d %H:%M:%S')) 3 end_time = time.mktime(time.strptime('2018-07-30 08:30:00','%Y-%m-%d %H:%M:%S')) 4 di...

weixin_34254823的博客 116

python day8------函数的简单使用

1. 函数的基本定义: def printMax(a,b): if a>b: print(a,'较大值') else: print(b,'较大值') printMax(20,30) 2.文档字符串(函数的注释): 解释:函数体开头部分注明函数的作用 用三个双引号或者单引号来实现。 用help(函数名.__doc__)函数打印出文档字符串来。...

一夜奈何梁山 488
上一篇: python(day018——字符串4)
下一篇: python(day020——异常1)
王总总
博客等级 码龄8年 2粉丝 41原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值