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)

相关文章
|
10天前
|
存储 数据采集 人工智能
Python编程入门:从零基础到实战应用
本文是一篇面向初学者的Python编程教程,旨在帮助读者从零开始学习Python编程语言。文章首先介绍了Python的基本概念和特点,然后通过一个简单的例子展示了如何编写Python代码。接下来,文章详细介绍了Python的数据类型、变量、运算符、控制结构、函数等基本语法知识。最后,文章通过一个实战项目——制作一个简单的计算器程序,帮助读者巩固所学知识并提高编程技能。
|
18天前
|
Python
在 Python 中,如何将日期时间类型转换为字符串?
在 Python 中,如何将日期时间类型转换为字符串?
118 64
|
10天前
|
小程序 开发者 Python
探索Python编程:从基础到实战
本文将引导你走进Python编程的世界,从基础语法开始,逐步深入到实战项目。我们将一起探讨如何在编程中发挥创意,解决问题,并分享一些实用的技巧和心得。无论你是编程新手还是有一定经验的开发者,这篇文章都将为你提供有价值的参考。让我们一起开启Python编程的探索之旅吧!
34 10
|
9天前
|
存储 测试技术 Python
Python 中别再用 ‘+‘ 拼接字符串了!
通过选择合适的字符串拼接方法,可以显著提升 Python 代码的效率和可读性。在实际开发中,根据具体需求和场景选择最佳的方法,避免不必要的性能损失。
30 5
|
13天前
|
Python
使用Python计算字符串的SHA-256散列值
使用Python计算字符串的SHA-256散列值
22 7
|
20天前
|
Python
在 Python 中,如何将字符串中的日期格式转换为日期时间类型?
在 Python 中,如何将字符串中的日期格式转换为日期时间类型?
28 6
|
22天前
|
算法 Unix 数据库
Python编程入门:从基础到实战
本篇文章将带你进入Python编程的奇妙世界。我们将从最基础的概念开始,逐步深入,最后通过一个实际的项目案例,让你真正体验到Python编程的乐趣和实用性。无论你是编程新手,还是有一定基础的开发者,这篇文章都将为你提供有价值的信息和知识。让我们一起探索Python的世界吧!
|
21天前
|
Python
Python三引号用法与变量详解
本文详细介绍了Python中三引号(`&quot;&quot;&quot;` 或 `&#39;&#39;&#39;`)的用法,包括其基本功能、如何在多行字符串中使用变量(如f-string、str.format()和%操作符),以及实际应用示例,帮助读者更好地理解和运用这一强大工具。
41 2
|
24天前
|
并行计算 调度 开发者
探索Python中的异步编程:从基础到实战
在Python的世界里,异步编程是一种让程序运行更加高效、响应更快的技术。本文不仅会介绍异步编程的基本概念和原理,还将通过具体代码示例展示如何在Python中实现异步操作。无论你是初学者还是有经验的开发者,都能从中获益,了解如何运用这一技术优化你的项目。
|
24天前
|
数据处理 Python
探索Python中的异步编程:从基础到实战
在Python的世界中,“速度”不仅是赛车手的追求。本文将带你领略Python异步编程的魅力,从原理到实践,我们不单单是看代码,更通过实例感受它的威力。你将学会如何用更少的服务器资源做更多的事,就像是在厨房里同时烹饪多道菜而不让任何一道烧焦。准备好了吗?让我们开始这场技术烹饪之旅。