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)

相关文章
|
1月前
|
存储 数据采集 人工智能
Python编程入门:从零基础到实战应用
本文是一篇面向初学者的Python编程教程,旨在帮助读者从零开始学习Python编程语言。文章首先介绍了Python的基本概念和特点,然后通过一个简单的例子展示了如何编写Python代码。接下来,文章详细介绍了Python的数据类型、变量、运算符、控制结构、函数等基本语法知识。最后,文章通过一个实战项目——制作一个简单的计算器程序,帮助读者巩固所学知识并提高编程技能。
|
2天前
|
测试技术 数据库 Python
Python装饰器实战:打造高效性能计时工具
在数据分析中,处理大规模数据时,分析代码性能至关重要。本文介绍如何使用Python装饰器实现性能计时工具,在不改变现有代码的基础上,方便快速地测试函数执行时间。该方法具有侵入性小、复用性强、灵活度高等优点,有助于快速发现性能瓶颈并优化代码。通过设置循环次数参数,可以更准确地评估函数的平均执行时间,提升开发效率。
71 61
Python装饰器实战:打造高效性能计时工具
|
2月前
|
Python
在 Python 中,如何将日期时间类型转换为字符串?
在 Python 中,如何将日期时间类型转换为字符串?
133 64
|
2天前
|
存储 人工智能 Python
[oeasy]python061_如何接收输入_input函数_字符串_str_容器_ 输入输出
本文介绍了Python中如何使用`input()`函数接收用户输入。`input()`函数可以从标准输入流获取字符串,并将其赋值给变量。通过键盘输入的值可以实时赋予变量,实现动态输入。为了更好地理解其用法,文中通过实例演示了如何接收用户输入并存储在变量中,还介绍了`input()`函数的参数`prompt`,用于提供输入提示信息。最后总结了`input()`函数的核心功能及其应用场景。更多内容可参考蓝桥、GitHub和Gitee上的相关教程。
7 0
|
1月前
|
小程序 开发者 Python
探索Python编程:从基础到实战
本文将引导你走进Python编程的世界,从基础语法开始,逐步深入到实战项目。我们将一起探讨如何在编程中发挥创意,解决问题,并分享一些实用的技巧和心得。无论你是编程新手还是有一定经验的开发者,这篇文章都将为你提供有价值的参考。让我们一起开启Python编程的探索之旅吧!
55 10
|
1月前
|
存储 测试技术 Python
Python 中别再用 ‘+‘ 拼接字符串了!
通过选择合适的字符串拼接方法,可以显著提升 Python 代码的效率和可读性。在实际开发中,根据具体需求和场景选择最佳的方法,避免不必要的性能损失。
54 5
|
19天前
|
数据采集 存储 XML
python实战——使用代理IP批量获取手机类电商数据
本文介绍了如何使用代理IP批量获取华为荣耀Magic7 Pro手机在电商网站的商品数据,包括名称、价格、销量和用户评价等。通过Python实现自动化采集,并存储到本地文件中。使用青果网络的代理IP服务,可以提高数据采集的安全性和效率,确保数据的多样性和准确性。文中详细描述了准备工作、API鉴权、代理授权及获取接口的过程,并提供了代码示例,帮助读者快速上手。手机数据来源为京东(item.jd.com),代理IP资源来自青果网络(qg.net)。
|
1月前
|
Python
使用Python计算字符串的SHA-256散列值
使用Python计算字符串的SHA-256散列值
53 7
|
2月前
|
Python
在 Python 中,如何将字符串中的日期格式转换为日期时间类型?
在 Python 中,如何将字符串中的日期格式转换为日期时间类型?
50 6
|
2月前
|
算法 Unix 数据库
Python编程入门:从基础到实战
本篇文章将带你进入Python编程的奇妙世界。我们将从最基础的概念开始,逐步深入,最后通过一个实际的项目案例,让你真正体验到Python编程的乐趣和实用性。无论你是编程新手,还是有一定基础的开发者,这篇文章都将为你提供有价值的信息和知识。让我们一起探索Python的世界吧!