鱼C论坛

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

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

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

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

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

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

字符串:不可变的序列
e.g
  1. #回文数的判定:
  2. x= "14541"
  3. "是" if x==x[::-1] else "不是"
  4. '是'
  5. x= "15897"
  6. "是" if x==x[::-1] else "不是"
  7. '不是'
复制代码

1、字符串的使用方法:
1.1 大小写字母换来换去:
capitalize() casefold() title() swapcase() upper() lower()
  1. #返回首字母大写的字符串
  2. a="I love Fishc but It is hard to learn"
  3. a.capitalize()
  4. 'I love fishc but it is hard to learn'
  5. a
  6. 'I love Fishc but It is hard to learn'
  7. #返回首字母是小写的字符串
  8. a.casefold()
  9. 'i love fishc but it is hard to learn'
  10. #将每个单词的首字母变大写,其他小写
  11. a.title()
  12. 'I Love Fishc But It Is Hard To Learn'
  13. #将原来字符串的大小写字母进行反转
  14. a.swapcase()
  15. 'i LOVE fISHC BUT iT IS HARD TO LEARN'
  16. #将所有字母变大写
  17. a.upper()
  18. 'I LOVE FISHC BUT IT IS HARD TO LEARN'
  19. #将所有字母变小写
  20. a.lower()
  21. 'i love fishc but it is hard to learn'
  22. #casefole()适用于除英文之外的其他语言
复制代码

1.2 左中右对齐:
width:用来指定字符串的参数,如果宽度小于原字符串,直接输出原字符;fillchar:用来规定填充的字符,不填写的话默认用空格填充
  1. a = "中午吃什么???"
  2. #center:中间对齐
  3. a.center(5)
  4. '中午吃什么???'
  5. a.center(20)
  6. '      中午吃什么???      '
  7. #左对齐
  8. a.ljust(20)
  9. '中午吃什么???            '
  10. #右对齐
  11. a.rjust(20)
  12. '            中午吃什么???'
  13. #填充零对齐
  14. a.zfill(20)
  15. '000000000000中午吃什么???'
  16. #fillchar
  17. a.center(20,"*")
  18. '******中午吃什么???******'
  19. a.ljust(20,"&")
  20. '中午吃什么???&&&&&&&&&&&&'
  21. a.rjust(20,"%")
  22. '%%%%%%%%%%%%中午吃什么???'
复制代码

作业:
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] 满足以上两个条件,则将它们一并删除
  1. s = input("请输入一个字符串:")
  2.    
  3. res = [] #通常要对原始字符串做变动,都要新建一个空字符串,来存储变化后的新字符串
  4. for each in s: #注意:字符串本身就可被遍历,无需采用下标的形式
  5.     if res and res[-1].lower() == each.lower() and res[-1] != each:#如果:字符串不为空,且(从后面取)的字母小写和s里的当前字母小写形式一致,且二者不是同一字母:保证是一小一大、一大一小、两大写
  6.         res.pop() #在res中弹出最后一个字母,且返回该值
  7.     else:
  8.         res.append(each) #否则不符合上述三种情况,可以储存
  9.    
  10. for each in res:
  11.     print(each, end='')
复制代码

1. 给定的字符串 s 是按照如下规则存放的:它的偶数下标为小写英文字母,奇数下标为正整数。

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-9 13:33

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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