Python 字符串高级用法及实战|学习笔记

简介: 快速学习 Python 字符串高级用法及实战

开发者学堂课程【Python 开发基础入门Python 字符串高级用法及实战】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/556/detail/7662


Python 字符串高级用法及实战

内容介绍:

一、 字符串练习

二、 第一题解答

三、 第二题解答

 

一、 字符串练习

用户输入一个数字

判断是几位数

打印每一位数字及其重复的次数

依次打印每一位数个,十,百,千,万位

输入5个数字,打印每个数字的位数,将这些数字排序打印,要求升序打印

 

实例1:

#柱子14:15:03

n=input ( '>>>')

length=len(n)

for i in range (10) :

//找字符串0有没有在z出现过

z=n.count (str (i) )#n*10

print (z)

//效率较高

//考虑到了整数的情况

print (length)

lst=list(n)

//套用了两层循环,依次打印

for x in range ( length) :

for y in range ( length-1-x):

if lst[y]>lst[y+1]:

lst[y] ,lst[y+1]=lst[y+1],lst[y]

print (lst)

实例2:

12-郭星池14:15:24

//str强转可以不要

str1 = input (">>>please input a integer: ")

//直接取长度

length = len(str1)

print (length)

//遍历字符串所有元素

for i in range (1, length+1) :

//本身就是字符串,没有必要str

//count查看元素有多少个

//每执行依次像当于遍历一次字符串

time = str1.count (str1[-i])

print(str1[-i],time)

实例3:

#47刘凯14:15:20

//不用浪费时间在强制转换上

a=str (int (input('>>>')))

//如果是-号开头,就减去-

if a.startswith('-') :

lena=len(a)-1

else:

"lena=len(a)

print('数字({}是{}位数,' . format (a, lena))

fori in a:

if i=='-':

continue

"print('数字(}重复{}次'. format (i,a.count(i)))

//字符串中开始迭代

for i in reversed(a) :

"print(i)

实例4:

陌生人14:13:13

num=input("<<<")

length=len (num)

//初始化一个lst10

lst=[False]*10//false等效于0

//长度打印

print ("length: {}" . format (length))

for i in range (1, length+1) :

//-1开始打印

print (num[-i],end='')

lst [int (num[-i])]+=1

print ()

for j in range(10) :

if lst[j] :

print ("{}????:{:3}". format(j,lst[j])) 

实例5:

08魏宇彤14:13:04

val = input('>>> ')

//拿到字符串进行打印 长度与字符串拼接也出来了

print('val='+val +’lenth='+str (len(val)))

//这叫惰性求值,发起请求后才开始进行处理,什么时候要,什么时候做

//list 立即出现一个列表  

lst=list (reversed (val))

title = ('个',十", '百,'千','万", '十万", '百万')

//拿到列表进行遍历

for i in range(len(lst)) :

print('{:>2}: {}

num={}'. format (title[i],lst[i],lst.count(lst[i]) ))

实例5改进:

val = input('>>> ' )

print('val='+val + ' lenth='+str (len (val)))

//循环和长度相关 

for i in range (len(val)) :

//format函数使用

print(' {}num={}'. format (val [len (val)-i-1],val. count (val[len(val)-i-1]) ))

要学会这么分析,怎么简化问题

列表可以巧妙使用索引,索引统一为字典中的key

 

二、 第一题解答

num = ""

#数字输入的简单判断

while True:

//用户输入字符串

num = input( "Input a positive number >>>').strip().1strip( '0')

//简单判断函数是否有用

if num.isdigit():

break

print( "The length of is {}.".format(num,len(num) ))

#倒序打印1

//函数len(num)求值时只算一次

for i in range(len(num),0,-1):

print(num[i-1], end=" ')

print()

可迭代这种懒加载方式是有好处的

#倒序打印2

不套用list有助于提高效率

for i in reversed(num):

print(i,end=' ')

print()

#负索引方式打印

//最好是使用负索引方式打印

for i in range( len(num)):

print(num[-i-1],end=' ')

print()

#判断0-9的数字在字符串中出现的次数,每一次迭代都是用count,都是o(n)问题

counter =[0]*18

//借用了index的方法特点

for i in range(10): # 10*n

counter[i] = num.count(str(i))

if counter[i]:

print("The count of {} is }".format(i,counter[i]))

再次提高效率

print( '~"*20)

#迭代字符串本身的字符

counter = [0]*10

//for循环,找到索引值,进行计数,用本身进行迭代

for x in num: # unique(n) *n ,unique(n)取值[1,10]

i = int(x)

if counter[i] == :

//count函数的使用,count一定会从头到尾遍历一遍才会知道有几个,规模有多大就会走多大

counter[i] = num.count(x)

print("The count of fis {f}".Format(x,counter[1]))

print(' ~"*20)

#迭代字符串本身的字符

counter = [0]*10

for x in num: # n

i = int(x)

//从自身开始增加

counter[i] += 1

这个比上面更加简单有效

for i in range( len(counter)) :

if counter[i]:

print("The count of is {}".format(i,counter[i]))

在工作中,一定要善于分析,可能算法不是最优,能实践出来,大家都能实现,复杂度没那么高,才是最优


三、 第二题解答

输入5个数字,打印每个数字的位数,将这些数字排序打印,要求升序打印

实例1:

#柱子15:36:12

//添加一个列表

lst=[]

//for循环午五次

for i in range (5) :

//每次拿到数字取整

n=int (input('>>>'))

//打印出来

print (n)

//把数字追加到列表中

lst.append (n)

//打印出列表长度

length=len(lst)

for s in range (length) :

for j in range (length-1-s) :

if lst[j]>lst[j+1] :

lst[j],lst[j+1]=lst[j+1],lst[j]

print (lst)

运行:sorted(‘abcd’)

结果:[‘a’,’b’,’c’,’d’]

立即返回一个列表

实例2:

#47刘凯15:36:26

//首先输入五个数字添加到列表

lst=[]

for i in range(5) :

a=str (int (input('>>>')))

lst . append (a)

for i in lst:

if i.startswith('-') :

//负数长度要-1

leni=len(i)-1

else:

leni=len(i)

print('数字{}是{}位数, ' . format (i, leni))

//判断数字是正数还是负数

a=lst

lena=len(a)

for i in range (lena-1) :

//每循环一次添加一个标记,进行了优化

flag=False

for j in range (lena-1-i) :

if a[j]>a[j+1] :

a[j],a[j+1]=a[j+1],a[j]

flag=True

if not flag:

break

print('输入元素升序排列结果为:',a)

实例3:

//先创建一个列表  

lst = [0]*5

//输入1-6

for i in range(1,6) :

//输入5次

val = input('>>> ')

//进行赋值

lst[i-1] = val

print (' length='+str (len(val)) )

//用给定的函数进行排序

print (sorted(Ist,key=int) )

正确参考:

nums = []

while 1en(nums) < 5:

num = input("Please input a number: ").strip().1strip('e')

if not num.isdigit():

continue

print( 'The length of fis f}'.format(num,1en(num)))

//把满足要求的进行写入

nums.append(int(num))

print(nums)

#sort方法排序

//拷贝一份

lst = nums.copy()

lst.sort()# 就地修改

print(lst)

)

#冒泡法

for i in range( len(nums)):

flag = False

for j in range(len(nums )-i-1):

if nums[j]> nums[j+1]:

tmp = nums[j]

nums[j] = nums[j+1]

nums[j+1] = tmp

flag = True

if not flag:

break

print(nums)

相关文章
|
20天前
|
SQL 关系型数据库 数据库
Python SQLAlchemy模块:从入门到实战的数据库操作指南
免费提供Python+PyCharm编程环境,结合SQLAlchemy ORM框架详解数据库开发。涵盖连接配置、模型定义、CRUD操作、事务控制及Alembic迁移工具,以电商订单系统为例,深入讲解高并发场景下的性能优化与最佳实践,助你高效构建数据驱动应用。
194 7
|
24天前
|
数据采集 Web App开发 数据安全/隐私保护
实战:Python爬虫如何模拟登录与维持会话状态
实战:Python爬虫如何模拟登录与维持会话状态
|
2月前
|
Python
Python中的f-string:更优雅的字符串格式化
Python中的f-string:更优雅的字符串格式化
271 100
|
1月前
|
传感器 运维 前端开发
Python离群值检测实战:使用distfit库实现基于分布拟合的异常检测
本文解析异常(anomaly)与新颖性(novelty)检测的本质差异,结合distfit库演示基于概率密度拟合的单变量无监督异常检测方法,涵盖全局、上下文与集体离群值识别,助力构建高可解释性模型。
263 10
Python离群值检测实战:使用distfit库实现基于分布拟合的异常检测
|
20天前
|
机器学习/深度学习 PyTorch 算法框架/工具
python torch基础用法
本教程系统讲解PyTorch基础,涵盖张量操作、自动求导、神经网络构建、训练流程、GPU加速及模型保存等核心内容,结合代码实例帮助初学者快速掌握深度学习开发基础,是入门PyTorch的实用指南。
328 6
|
1月前
|
数据采集 监控 数据库
Python异步编程实战:爬虫案例
🌟 蒋星熠Jaxonic,代码为舟的星际旅人。从回调地狱到async/await协程天堂,亲历Python异步编程演进。分享高性能爬虫、数据库异步操作、限流监控等实战经验,助你驾驭并发,在二进制星河中谱写极客诗篇。
Python异步编程实战:爬虫案例
|
1月前
|
Cloud Native 算法 API
Python API接口实战指南:从入门到精通
🌟蒋星熠Jaxonic,技术宇宙的星际旅人。深耕API开发,以Python为舟,探索RESTful、GraphQL等接口奥秘。擅长requests、aiohttp实战,专注性能优化与架构设计,用代码连接万物,谱写极客诗篇。
Python API接口实战指南:从入门到精通
|
1月前
|
存储 分布式计算 测试技术
Python学习之旅:从基础到实战第三章
总体来说,第三章是Python学习路程中的一个重要里程碑,它不仅加深了对基础概念的理解,还引入了更多高级特性,为后续的深入学习和实际应用打下坚实的基础。通过这一章的学习,读者应该能够更好地理解Python编程的核心概念,并准备好应对更复杂的编程挑战。
82 12
|
2月前
|
数据采集 存储 XML
Python爬虫技术:从基础到实战的完整教程
最后强调: 父母法律法规限制下进行网络抓取活动; 不得侵犯他人版权隐私利益; 同时也要注意个人安全防止泄露敏感信息.
632 19
|
1月前
|
存储 数据采集 监控
Python文件操作全攻略:从基础到高级实战
本文系统讲解Python文件操作核心技巧,涵盖基础读写、指针控制、异常处理及大文件分块处理等实战场景。结合日志分析、CSV清洗等案例,助你高效掌握文本与二进制文件处理,提升程序健壮性与开发效率。(238字)
201 1

推荐镜像

更多