第1章 字符串练习题
1.1 交换
已知 a的值为"hello",b的值为"world",如何交换a和b的值?
a = "hello"
b = "world"
a,b = b,a
print("a的值为 %s" % a)
print("b的值为 %s" % b)
a,b = b,a 实际上做了两件事:
tuple(b,a) 构成一个由b和a构成的元组、对元组进行拆包,将其元素赋给a,b
注:Python的变量并不直接存储值,而是引用一个内存地址,交换变量时,只交换了引用的地址。
1.2 回文
回文的定义:"回文" 就是正读倒读都一样的。
如奇数个:"98789",这个数字正读是"98789" 倒读也是"98789"。
偶数个数字"3223"也是回文数。
字母 "abcba" 也是回文。
判断一个字符串是否是回文字符串,是打印True, 不是打印False
# 方法一
a = input("请输入一个数字:")
b = a[::-1]
if a == b:print("该数字是回文数")
else:print("该数字不是回文数")
Python 访问子字符串,可以使用方括号 [] 来截取字符串,字符串的截取的语法格式如下:
变量[头下标:尾下标]
索引值以 0 为开始值,-1 为从末尾的开始位置。
b = a[i:j] 表示复制a[i]到a[j-1],以生成新的对象
当i缺省时,默认为0,即 a[:3]相当于 a[0:3]
当j缺省时,默认为len(a), 即a[1:]相当于a[1:len(a)]
当i,j都缺省时,a[:]就相当于完整复制一份a
b = a[i:j:s]表示:i,j与上面的一样,但s表示步进,缺省为1.
所以a[i:j:1]相当于a[i:j]
当s<0时,i缺省时,默认为-1. j缺省时,默认为-len(a)-1
所以a[::-1]相当于 a[-1:-len(a)-1:-1],也就是从最后一个元素到第一个元素复制一遍,即倒序。
# 方法二
a = int(input("请输入一个数字:\n"))
x = str(a)
flag = Truefor i in range(len(x)//2):if x[i] != x[-i - 1]:flag = Falsebreak
if flag:print ("%d 是一个回文数!" % a)
else:print ("%d 不是一个回文数!" % a)
1.3 字符串切割
已知一个字符串为 "hello_world_yoyo", 如何得到一个队列 ["hello","world","yoyo"]
str = "hello_world_bigant"
str1 = str.split("_")
print(str1)
1.4 拼接字符串
# 方法一
lister = ["hello", "world", "yoyo"]
s = "hello_" + "world_" + "yoyo"
print(s)# 方法二
lister = ["hello", "world", "yoyo"]
strlist = '_'.join(lister)
print(strlist)
1.5替换字符
把字符串 s 中的每个空格替换成"%20"
输入:s = "We are happy."
输出:"We%20are%20happy."
s = "We are happy."
print(s.replace(" ", "%20"))
1.6九九乘法表
打印99乘法表
# 方法一
for i in range(1, 10):for j in range(1, i+1):print("%d*%d=%d" % (j, i, j*i), end=' ')print("")
# 方法二
i = 1
while i<10:j = 1while j <= i:print("%d*%d=%d" % (j,i,j*i), end=' ')j += 1print("")i += 1
1.7字符下标
找出单词 "welcome" 在 字符串"Hello, welcome to my world." 中出现的位置,找不到返回-1
从下标0开始索引
s = "Hello, welcome to my world."
print(s.index("welcome", 0, len(s)))
1.8 统计字符出现的次数
s = "Count, the number of spaces."
print(s.count(" "))
x = "I like to program in Python"
print(x.count(" "))
string.count(str, beg=0, end=len(string))用于统计字符串里某个字符出现的次数。可选参数为在字符串搜索的开始与结束位置。
1.9 统计每个字符出现的次数
#方法一:字典推导式
str1 = "ewq4aewtaSDDSFDTFDSWQrtewtyufashas"
result = {i: str1.count(i) for i in str1}
print(result)
#方法二:counter
import collections
str2 = "ewq4aewtaSDDSFDTFDSWQrtewtyufashas"
obj = collections.Counter(str2)
print(obj)
for k, v in obj.items():print(k, v)
Python 字典 items() 方法以列表返回视图对象,是一个可遍历的key/value 对。
#方法三 利用count
str2 = "ewq4aewtaSDDSFDTFDSWQrtewtyufashas"
for i in set(str2):print(i, str2.count(i))
set() 函数创建一个无序不重复元素集,可进行关系测试,删除重复数据,还可以计算交集、差集、并集等。
1.10 打印出排行前三的字符
dd="ewq4aewtaSDDSFDTFDSWQrtewtyufashas"
obj = collections.Counter(dd)
print obj.most_common(3)
1.11 判断字符a含b
'''
判断字符串a="welcome to my world" 是否包含单词b="world"
包含返回True,不包含返回 False
'''
a = "welcome to my world"
b = "world"if b in a:print(True)
else:print(False)
1.12 查找字符首次出现位置
'''
输出指定字符串A在字符串B中第一次出现的位置,如果B中不包含A,则输出-1
从 0 开始计数
A = "hello"
B = "hi how are you hello world, hello yoyo !"
'''A = "hello"
B = "hi how are you hello world, hello yoyo !"
# if A in B:
print(B.find(A))
# 或者
print(B.index(A))
find() 方法检测字符串中是否包含子字符串 str ,如果指定 beg(开始) 和 end(结束) 范围,则检查是否包含在指定范围内,如果指定范围内如果包含指定索引值,返回的是索引值在字符串中的起始位置。如果不包含索引值,返回-1。
1.13判断奇数偶数
'''
给定一个数a,判断一个数字是否为奇数或偶数
a1 = 13
a2 = 10
'''
num = int(input("请输入一个整数:"))
if num % 2 == 0:print("这是一个偶数")
elif num % 2 == 1:print("这是一个奇数")
1.14判断一个姓名是否姓王
b = input("输入姓名:")
# 判断字符串以xx开始
if str(b).startswith("王"):print("姓王")
else:print("不姓王")b = input("输入姓名:")
b = input("输入姓名:")
# 判断字符串以xx结尾
if str(b).endswith("三"):print("姓名以三结尾")
else:print("姓名不以三结尾")
1.15判断是不是数字
'''
如何判断一个字符串是不是纯数字组成
a = "123456"
b = "yoyo123"
'''
str1 = "123456"
str2 = "Abcd"
str3 = "123Abc"# 用isdigit函数判断是否数字
print(str1.isdigit())
print(str2.isdigit())
print(str3.isdigit())# 用isalpha判断是否字母
print(str1.isalpha())
print(str2.isalpha())
print(str3.isalpha())# isalnum判断是否数字和字母的组合
print(str1.isalnum())
print(str2.isalnum())
print(str3.isalnum())# 注意:如果字符串中含有除了字母或者数字之外的字符,比如空格,也会返回False
string.isdigit() 如果 string 只包含数字则返回 True 否则返回 False.
string.isalnum() 至少有一个字符并且所有字符都是字母或数字则返回 True 否则返回 False
string.isalpha() 至少有一个字符并且所有字符都是字母则返回 True,否则返回 False
1.16字符串大小写转换
'''
将字符串 a = "This is string example....wow!" 全部转成大写
字符串 b = "Welcome To My World" 全部转成小写
'''
a = "This is string example....wow!"
b = "Welcome To My World"# 全部转成大写
print(a.upper())
# 全部转成小写
print(b.lower())
# 字符串首字母大写
print(a.capitalize())
# 每个单词的首字母大写
print(a.title())
# 大小写互换
print(b.swapcase())
1.17 去掉字符串中空格的方法
'''
将字符串 a = " welcome to my world "首尾空格去掉
'''
a = " welcome to my world "# 去除字符串开头和结尾的空格
print(a.strip())
# 去除字符串开头的空格
print(a.lstrip())
# 去掉字符串结尾的空格
print(a.rstrip())# 去除全部空格
'''
1. replace()方法replace主要用于字符串的替换replace(old, new, count)
'''
print(a.replace(" ", ""))'''
2.join()方法+split()方法
# join可以将列表每个字符通过前字符串进行拼接,split可以将字符串按指定规则进行切割生成一个新的列表,
不传参默认按空格切割
'''
print(a.split()) # 字符串按空格分割成列表b
print("".join(a.split())) # 使用一个空字符串合成列表内容生成新的字符串
1.18 字符串去重后排序
'''
s = "ajldjlajfdljfddd",去重并从小到大排序输出"adfjl"1.22 字符串去重保留顺序
s = "ajldjlajfdljfddd",去重保留原来的顺序,输出"adfjl"
'''
s = "ajldjlajfdljfddd"
s1 = list(set(s))s2 = s1.sort(reverse=False)
s3 = "".join(s1)
print(s3)
1.23画菱形
n = int(input("请输入菱形边长:"))
for i in range(n):for j in range(n-i-1):print(" ", end="")for k in range(2*i+1):print("*", end="")print("")
for i in range(n-1):for j in range(i+1):print(' ', end='')for k in range(2*(n-i)-3):print("*", end="")print()
1.24 输入一个正整数,判断是几位数
题目 给一个不多于5位的正整数,要求:
一、求它是几位数,
二、逆序打印出各位数字。
a = 12345
s = int(input("请输入一个整数:"))
print(s)
s1 = str(s)
print("您输入的是 %s位数" % len(s1))
print("逆序的结果为:", end="")
for i in range(len(s1)-1, -1, -1): # 切片用法:创建一个与原字符串顺序相反的字符串print(s1[i], end="")
第1章 字符串练习题相关推荐
- 速学堂第四章代码练习题
速学堂第四章代码练习题 1 编写 Java 程序,用于显示人的姓名和年龄.定义一个人类Person. 该类中应该有两个私有属性: 姓名 (name) 和年龄 (age) .定义构造方法用来初始化数据成 ...
- 尚学堂(java)1到13章所有练习题答案详解
尚学堂1到13章所有练习题答案详解 未完待续- 文章目录 尚学堂1到13章所有练习题答案详解 B站网课链接 第一章 一.选择题 二.简答题 三.上机操作 第二章 第三章 第四章 一.选择题 二.简答题 ...
- c语言程序设计中国铁道出版社课后题答案,C语言程序设计(中国铁道出版社) 第4章 数组练习题答案003.doc...
C语言程序设计(中国铁道出版社) 第4章 数组练习题答案003 第4章 数组练习题 一.选择题 在c语言中,引用数组元素时,其数组下标的数据类型允许是( ). A)整型常量 B)整型表达式C)整型常量 ...
- 《Java编程思想》读书笔记 第十三章 字符串
<Java编程思想>读书笔记 第十三章 字符串 不可变String String对象是不可变的,每一个看起来会修改String值的方法,实际上都是创建一个全新的String对象,以及包含修 ...
- python语言程序设计嵩天-python语言程序设计基础(嵩天版),第二章程序练习题...
python语言程序设计基础(嵩天版),第二章程序练习题 欢迎访问江南烧酒的博客 2.2汇率兑换程序.按照1美元=6人民币汇率编写一个美元和人民币的双向兑换程序. """ ...
- Python第三章-字符串
第三章 字符串 3.1 基本字符串操作 Python的字符串和元组差不多,是不可以进行改变的,如果想改变值,可以尝试list序列化之后在进行修改. { website = 'http://ww ...
- 第4章 字符串和格式化输入/输出
学习笔记--<C Primer Plus> 第4章 字符串和格式化输入/输出 4.1 前导程序 4.2 字符串简介 4.2.1 char 类型数组和 null 字符 4.2.2 使用字符串 ...
- python语言程序设计基础嵩天答案第二章_python语言程序设计基础(嵩天版),第二章程序练习题...
python语言程序设计基础(嵩天版),第二章程序练习题 欢迎访问江南烧酒的博客 2.2汇率兑换程序.按照1美元=6人民币汇率编写一个美元和人民币的双向兑换程序. """ ...
- c语言第三章作业题答案,c语言第三章简单练习题及答案.doc
c语言第三章简单练习题及答案 c语言第三章简单练习题及答案 一.选择题 1. C语言提供的合法的数据类型关键字是. Double shortinteger Char 2. 在C语言中,合法的长整型常数 ...
最新文章
- 电大计算机组成原理ppt,四川电大计算机组成原理(0023)第二次形考作业(课程号:5110023).docx...
- 竞赛数据清洗缺失值_Kaggle 数据清洗挑战 Day 1 - 手把手教你五步处理缺失值
- mysql varchar 效率_由MySQL中char和varchar效率想到的
- [高光谱] 在开源项目Hyperspectral-Classification Pytorch中加入自己的网络
- 微弱信号检测matlab,微弱信号检测
- python ppt表格样式展示
- 兼容西门子 CPU226IE量产方案
- java .getbytes_java中String的getBytes方法使用
- python:实现恩尼格玛密码机算法(附完整源码)
- spring @lazy注解的使用
- 迅雷离线下载节点分布
- Android 视频播放器
- feil_uVission4左侧工目录消失
- 详细解说Windows 8.1与Windows 8的区别(Win8.1与Win8区别)
- (六)分布式系统认证方案
- tensorflow打印模型图_tensorflow实现打印pb模型的所有节点
- 内存管理参数zone_reclaim_mode分析
- ❤️UNITY实战进阶-OBB包围盒详解-6
- 计算机主机通电启动不了,电脑不通电,开机没反应?这里有问题!
- ‘0’ 和 '\0'
热门文章
- python制作俄罗斯方块
- Python爬取高质量电脑壁纸,还是很好看的
- 微信打不开链接,提示已停止访问该网页怎么办
- 招行银企直连经验分享
- 脚踩云视频和企服两个风口,“百家云”值30亿吗?
- lut及3D LUT Mac调色预设如何导入并应用?关于fcpx/PR/AE/PS/LR/达芬奇lut预设导入及使用方法完整版介绍!
- 420个生活小窍门,很有用的哦
- 十九.Linux开发之根文件系统移植——根文件系统的原理
- java文件下载时文件类型_Java基础之文件下载实现自定义名称和格式类型-java下载文件...
- apk安卓程序开发订做--荐为发烧而“拆”小米电视2内部拆解报告