鱼C论坛

 找回密码
 立即注册
查看: 797|回复: 0

[学习笔记] 零py-(ep-18)

[复制链接]
发表于 2023-10-12 09:26:52 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 Nicole37 于 2023-10-13 10:18 编辑

字符串:不可变的序列
e.g
#回文数的判定:
x= "14541"
"是" if x==x[::-1] else "不是"
'是'
x= "15897"
"是" if x==x[::-1] else "不是"
'不是'
1、字符串的使用方法:
1.1 大小写字母换来换去:
capitalize() casefold() title() swapcase() upper() lower()
#返回首字母大写的字符串
a="I love Fishc but It is hard to learn"
a.capitalize()
'I love fishc but it is hard to learn'
a
'I love Fishc but It is hard to learn'
#返回首字母是小写的字符串
a.casefold()
'i love fishc but it is hard to learn'
#将每个单词的首字母变大写,其他小写
a.title()
'I Love Fishc But It Is Hard To Learn'
#将原来字符串的大小写字母进行反转
a.swapcase()
'i LOVE fISHC BUT iT IS HARD TO LEARN'
#将所有字母变大写
a.upper()
'I LOVE FISHC BUT IT IS HARD TO LEARN'
#将所有字母变小写
a.lower()
'i love fishc but it is hard to learn'
#casefole()适用于除英文之外的其他语言
1.2 左中右对齐:
width:用来指定字符串的参数,如果宽度小于原字符串,直接输出原字符;fillchar:用来规定填充的字符,不填写的话默认用空格填充
a = "中午吃什么???"
#center:中间对齐
a.center(5)
'中午吃什么???'
a.center(20)
'      中午吃什么???      '
#左对齐
a.ljust(20)
'中午吃什么???            '
#右对齐
a.rjust(20)
'            中午吃什么???'
#填充零对齐
a.zfill(20)
'000000000000中午吃什么???'
#fillchar
a.center(20,"*")
'******中午吃什么???******'
a.ljust(20,"&")
'中午吃什么???&&&&&&&&&&&&'
a.rjust(20,"%")
'%%%%%%%%%%%%中午吃什么???'
作业:
0. 请按照以下规则整理一个给定的字符串 s。s.yhkq
m>2G=`rz9ZPK#JX}*S-']
一个整理好的字符串中,两个相邻字符 s[j] 和 s[j+1],其中 0 <= j <= s.length - 2,要满足如下条件:
若 s[j] 是小写字符,则 s[j+1] 不可以是相同的大写字符
若 s[j] 是大写字符,则 s[j+1] 不可以是相同的小写字符
如果 s[j] 和 s[j+1] 满足以上两个条件,则将它们一并删除
s = input("请输入一个字符串:")
    
res = [] #通常要对原始字符串做变动,都要新建一个空字符串,来存储变化后的新字符串
for each in s: #注意:字符串本身就可被遍历,无需采用下标的形式
    if res and res[-1].lower() == each.lower() and res[-1] != each:#如果:字符串不为空,且(从后面取)的字母小写和s里的当前字母小写形式一致,且二者不是同一字母:保证是一小一大、一大一小、两大写
        res.pop() #在res中弹出最后一个字母,且返回该值
    else:
        res.append(each) #否则不符合上述三种情况,可以储存
    
for each in res:
    print(each, end='')
1. 给定的字符串 s 是按照如下规则存放的:它的偶数下标为小写英文字母,奇数下标为正整数。

题目要求:编写代码,将奇数下标的数字转换为相对于上一个字母偏移后的字母
s = input("请按规则输入一个字符串:")
    
length = len(s)
res = [] #建立空的列表存放新的
# 获取字母 a 的编码值
base = ord('a')
    
# 从第一个元素开始,每次迭代跳过一个元素
for i in range(0, length, 2):
    # ord(s[i]) - base 操作得到一个字母的偏移值,比如 b 就是 1
    # 跟 26 求余数的作用是防止溢出,循环计算偏移,正常<26的数%26=其本身,,而>26,则按26周期循环
    shift = chr((ord(s[i]) - base + int(s[i+1])) % 26 + base)
    print(s[i]+shift, end="")#"+"表示连接输出
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-23 08:32

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表