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. 速学堂第四章代码练习题

    速学堂第四章代码练习题 1 编写 Java 程序,用于显示人的姓名和年龄.定义一个人类Person. 该类中应该有两个私有属性: 姓名 (name) 和年龄 (age) .定义构造方法用来初始化数据成 ...

  2. 尚学堂(java)1到13章所有练习题答案详解

    尚学堂1到13章所有练习题答案详解 未完待续- 文章目录 尚学堂1到13章所有练习题答案详解 B站网课链接 第一章 一.选择题 二.简答题 三.上机操作 第二章 第三章 第四章 一.选择题 二.简答题 ...

  3. c语言程序设计中国铁道出版社课后题答案,C语言程序设计(中国铁道出版社) 第4章 数组练习题答案003.doc...

    C语言程序设计(中国铁道出版社) 第4章 数组练习题答案003 第4章 数组练习题 一.选择题 在c语言中,引用数组元素时,其数组下标的数据类型允许是( ). A)整型常量 B)整型表达式C)整型常量 ...

  4. 《Java编程思想》读书笔记 第十三章 字符串

    <Java编程思想>读书笔记 第十三章 字符串 不可变String String对象是不可变的,每一个看起来会修改String值的方法,实际上都是创建一个全新的String对象,以及包含修 ...

  5. python语言程序设计嵩天-python语言程序设计基础(嵩天版),第二章程序练习题...

    python语言程序设计基础(嵩天版),第二章程序练习题 欢迎访问江南烧酒的博客 2.2汇率兑换程序.按照1美元=6人民币汇率编写一个美元和人民币的双向兑换程序. """ ...

  6. Python第三章-字符串

    第三章  字符串 3.1 基本字符串操作 Python的字符串和元组差不多,是不可以进行改变的,如果想改变值,可以尝试list序列化之后在进行修改. {    website = 'http://ww ...

  7. 第4章 字符串和格式化输入/输出

    学习笔记--<C Primer Plus> 第4章 字符串和格式化输入/输出 4.1 前导程序 4.2 字符串简介 4.2.1 char 类型数组和 null 字符 4.2.2 使用字符串 ...

  8. python语言程序设计基础嵩天答案第二章_python语言程序设计基础(嵩天版),第二章程序练习题...

    python语言程序设计基础(嵩天版),第二章程序练习题 欢迎访问江南烧酒的博客 2.2汇率兑换程序.按照1美元=6人民币汇率编写一个美元和人民币的双向兑换程序. """ ...

  9. c语言第三章作业题答案,c语言第三章简单练习题及答案.doc

    c语言第三章简单练习题及答案 c语言第三章简单练习题及答案 一.选择题 1. C语言提供的合法的数据类型关键字是. Double shortinteger Char 2. 在C语言中,合法的长整型常数 ...

最新文章

  1. 电大计算机组成原理ppt,四川电大计算机组成原理(0023)第二次形考作业(课程号:5110023).docx...
  2. 竞赛数据清洗缺失值_Kaggle 数据清洗挑战 Day 1 - 手把手教你五步处理缺失值
  3. mysql varchar 效率_由MySQL中char和varchar效率想到的
  4. [高光谱] 在开源项目Hyperspectral-Classification Pytorch中加入自己的网络
  5. 微弱信号检测matlab,微弱信号检测
  6. python ppt表格样式展示
  7. 兼容西门子 CPU226IE量产方案
  8. java .getbytes_java中String的getBytes方法使用
  9. python:实现恩尼格玛密码机算法(附完整源码)
  10. spring @lazy注解的使用
  11. 迅雷离线下载节点分布
  12. Android 视频播放器
  13. feil_uVission4左侧工目录消失
  14. 详细解说Windows 8.1与Windows 8的区别(Win8.1与Win8区别)
  15. (六)分布式系统认证方案
  16. tensorflow打印模型图_tensorflow实现打印pb模型的所有节点
  17. 内存管理参数zone_reclaim_mode分析
  18. ❤️UNITY实战进阶-OBB包围盒详解-6
  19. 计算机主机通电启动不了,电脑不通电,开机没反应?这里有问题!
  20. ‘0’ 和 '\0'

热门文章

  1. python制作俄罗斯方块
  2. Python爬取高质量电脑壁纸,还是很好看的
  3. 微信打不开链接,提示已停止访问该网页怎么办
  4. 招行银企直连经验分享
  5. 脚踩云视频和企服两个风口,“百家云”值30亿吗?
  6. lut及3D LUT Mac调色预设如何导入并应用?关于fcpx/PR/AE/PS/LR/达芬奇lut预设导入及使用方法完整版介绍!
  7. 420个生活小窍门,很有用的哦
  8. 十九.Linux开发之根文件系统移植——根文件系统的原理
  9. java文件下载时文件类型_Java基础之文件下载实现自定义名称和格式类型-java下载文件...
  10. apk安卓程序开发订做--荐为发烧而“拆”小米电视2内部拆解报告