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)

相关文章
|
2天前
|
数据采集 JSON 数据可视化
【Python实战】Python对中国500强排行榜数据进行可视化分析
【Python实战】Python对中国500强排行榜数据进行可视化分析
|
3天前
|
存储 索引 Python
字符串、列表、元组、字典(python)
字符串、列表、元组、字典(python)
|
5天前
|
Python
python之字符串定义、切片、连接、重复、遍历、字符串方法
python之字符串定义、切片、连接、重复、遍历、字符串方法
6 0
python之字符串定义、切片、连接、重复、遍历、字符串方法
|
2天前
|
数据采集 XML 存储
【Python实战】Python多线程批量采集图片
【Python实战】Python多线程批量采集图片
|
2天前
|
数据采集 XML 存储
【Python实战】Python采集二手车数据——超详细讲解
【Python实战】Python采集二手车数据——超详细讲解
|
2天前
|
Python
python之requests基础用法
python之requests基础用法
|
2天前
|
消息中间件 缓存 中间件
【赠书活动 - 第1期】- 测试工程师Python开发实战(异步图书出品)| 文末送书
【赠书活动 - 第1期】- 测试工程师Python开发实战(异步图书出品)| 文末送书
|
4天前
|
索引 Python 容器
深入探索Python字符串:技巧、方法与实战
深入探索Python字符串:技巧、方法与实战
|
4天前
|
Python
python3 入门学习笔记
python3 入门学习笔记
5 0
|
4天前
|
数据采集 搜索推荐 JavaScript
GitHub星标3500的Python爬虫实战入门教程,限时开源!
爬虫的全称为网络爬虫,简称爬虫,别名有网络机器人,网络蜘蛛等等。 网络爬虫是一种自动获取网页内容的程序,为搜索引擎提供了重要的数据支撑。搜索引擎通过网络爬虫技术,将互联网中丰富的网页信息保存到本地,形成镜像备份。我们熟悉的谷歌、百度本质上也可理解为一种爬虫。 如果形象地理解,爬虫就如同一只机器蜘蛛,它的基本操作就是模拟人的行为去各个网站抓取数据或返回数据。