声明!!!
笔者作为初学者,所写的一系列博客仅作为个人学习使用,记录相关知识以确保后续学习的正常开展。因受 互联网开源精神 及 奉献精神 的影响,我尽可能地让我的博客可以面向更多人,希望我的文章可以帮助到你!
如果你有更好的意见,也随时欢迎你联系我。
当笔者对博客(包括本文)内容有更深的理解或更清晰的表达时,会不定期对博客进行优化。
目录
字符串类型
用int()转换类型
将字符串赋值给变量
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前缀开始时,它将被视为原始字符串,其中的转义字符将被忽略。
字符串拼接
用 + 或者用 * 拼接
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'对象不可调用
解决参考链接https://blog.csdn.net/m0_62167612/article/details/133469278?spm=1001.2014.3001.5501
random模块参考链接https://blog.csdn.net/qq_22895113/article/details/82807822
random模块参考链接2https://blog.csdn.net/m0_62735081/article/details/124978101