Python基础:字符串(一)

声明!!!


笔者作为初学者,所写的一系列博客仅作为个人学习使用,记录相关知识以确保后续学习的正常开展。因受 互联网开源精神 奉献精神 的影响,我尽可能地让我的博客可以面向更多人,希望我的文章可以帮助到你!

如果你有更好的意见,也随时欢迎你联系我。

当笔者对博客(包括本文)内容有更深的理解或更清晰的表达时,会不定期对博客进行优化。


目录

声明:

字符串类型

字符串的多行输出问题

字符串拼接

字符串的格式化输出(占位符)

其他

random模块


字符串类型

用int()转换类型

数据类型有:字符串,整数型,浮点数型,复数(complex),布尔,列表,元组,字典集合等。数据类型参考链接icon-default.png?t=N7T8https://blog.csdn.net/m0_61232019/article/details/129798969?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522170661314116800182182647%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=170661314116800182182647&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-2-129798969-null-null.142%5Ev99%5Econtrol&utm_term=python%E6%95%B0%E6%8D%AE%E7%B1%BB%E5%9E%8B%E6%9C%89&spm=1018.2226.3001.4187

将字符串赋值给变量
name = '我'

字符串的引号需要对应,以下为错误示范
#前后不统一
name1 = '我"
name2 = "小我'

#使用了中文引号
name1 = ‘我’
name2 = “我”

字符串的多行输出问题

方法一
#使用''' 或 """ 包裹多行字符串
print('''我给你的爱写在西元前,
深埋在美索不达米亚平原。
''')
#输出为:
#我给你的爱写在西元前,
#深埋在美索不达米亚平原。


方法二
使用换行符\n   
print('我给你的爱写在西元前,\n深埋在美索不达米亚平原。')
#输出为:
#我给你的爱写在西元前,
#深埋在美索不达米亚平原。

注意:是\n        而不是/n   (n为new line 即“另起一行”的意思)

补充: r' 的用法

避免由于 字符串内部包含 转义字符 或有特殊的字符 而引起计算机的混淆

# 不使用r字符串前缀
path = 'C:\Users\username\Documents'
print(path)

报错
#SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape
SyntaxError:(unicode错误)'unicodeescape'编解码器无法解码位置2-3中的字节:截断的\UXXXXXXXX转义

因为电脑 对\产生了混淆


# 使用r字符串前缀
path = r'C:\Users\username\Documents'
print(path)

输出C:\Users\username\Documents

一个字符串以r前缀开始时,它将被视为原始字符串,其中的转义字符将被忽略。

r'参考链接 以及进阶操作icon-default.png?t=N7T8https://blog.csdn.net/lsoxvxe/article/details/132001495?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522170671846316800222850295%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=170671846316800222850295&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-2-132001495-null-null.142%5Ev99%5Econtrol&utm_term=python%E4%B8%ADr&spm=1018.2226.3001.4187

字符串拼接

用 + 或者用 * 拼接

str1 = '海草'
str2 = str1 * 3       这个相当于 str1 + str1 + str1
print(str2)
# 输出:海草海草海草

字符串的格式化输出(占位符)

要想让数字与字符串拼接起来,就要先用 str() 函数进行类型转换,这有点麻烦

通过格式化输出解决 不同类型的拼接

def a(name, age, city):
  b = '我叫%s,今年 %d 岁,来自%s。' % (name, age, city)
  print(b)

a('小贝', 18, '南京')
# 输出:我叫小贝,今年 18 岁,来自南京。


% 运算符左边是要格式化的字符串,右边是一个元组。如果只有一个占位符,可以将元组里的元素拿出来,就是删除 括号                          如:'我叫%s' % '小贝'

通过 %s%d 这样的占位符在字符串中“占位”,Python 会将 % 右边的内容会按顺序替换掉对应的占位符

% 运算符后面的是元组类型 注意要加上括号()

如果编辑的是def的话 %后面接形参  

如果编辑的是def的话   占位符%后面接 形参  

def print_intro(name, age, city):
  intro = '我叫%s,今年 %d 岁,来自%s。' % (name, age, city)
  print(intro)

print_intro('小贝', 18, '南京')

#输出:我叫小贝,今年 18 岁,来自南京。

果不确定用什么占位符,使用 %s 是万能的,它会把任何数据类型转换为字符串。

记忆:%s 的s是str  %f是float   其他的可能对应不上。

其他

(从练习中获得的相关编程思路或者问题)

例一

#小贝写了段播报天气的代码,但还是用 + 进行字符串拼接实现的,你能用字符串格式化输出的知识帮她改进一下代码吗?

weathers = [
  ('南京', 36),
  ('成都', 30),
  ('昆明', 26)]

for w in weathers:
  result='今天%s的最高气温是%s度' % (w[0],w[1])   #w为列表中的一个元组 索引0为地点 索引1为温度
  print(result)

获得的思路:
在格式化输出中,w[0] 加入了索引index 还有 for 循环

例二

#需求: 将 ['+1', '就这'] 复读为 ['+1+1+1', '就这就这就这']。

方法一
words = ['+1', '不会吧', '下次一定', '+10086', '就这']

new = []   #建立空列表
for i in words:
  i = i*3
  new.append(i)    #append是将元素增加到列表末尾
print(new)

思路:
利用for循环的遍历 将words中的每个元素*3后 加入new列表中




方法二
words = ['+1', '不会吧', '下次一定', '+10086', '就这']


for i in range(len(words)):     列表长度为4 ,索引最大为4,完美对应,并且使用range(4)
  words[i] *= 3
#缩写的完整为 对应words的元素 = 对应words的元素 *3
print(words)


思路:
利用索引idex和列表长度的关系 加上for循环遍历

random模块

因.py文件命名引起的导入random模块失败的问题

因此执行import random命令的文件 不可命名为random

报错为:

TypeError: 'module' object is not callable

TypeError: 'module'对象不可调用

解决参考链接icon-default.png?t=N7T8https://blog.csdn.net/m0_62167612/article/details/133469278?spm=1001.2014.3001.5501

random模块参考链接icon-default.png?t=N7T8https://blog.csdn.net/qq_22895113/article/details/82807822

random模块参考链接2icon-default.png?t=N7T8https://blog.csdn.net/m0_62735081/article/details/124978101

  • 28
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值