《每天五分钟冲击python基础之字符串基础入门》(五)(重点)

前言

上节课已经教大家学会了如何注释和如何使用注释来测试代码了,那么今节课就先学字符串的入门,那你们肯定会问,为什么不先教其他的变量类型(例如:数值类型:整型、浮点型、复数,运算符:算术运算符、位运算符)那些的,因为以我过往开发的经验,字符串类型是写代码的时候,经常用到,所以先将这部分抽出来先讲,其他的部分,后面再一 一讲解。

入门字符串前先学会定义变量

1、变量是什么呢?
变量就像一个个小小的容器,主要是用来保存数据的。

2、变量和常量有什么区别
常量一旦保存某个数据之后,该数据就不能发生改变;但变量保存的数据则可以多次发生改变,只要程序对变量重新赋值即可。
怎么理解上面这句话呢?举例说明:比如你去买杂货店买东西,椰树牌的香烟,10年一直以来的价格都是3块的,那么这个就是常量,那么芙蓉王的价格,可能3年前就25块,1年前就30块,现在买就35块,那么这个就是变量。

3、怎么定义变量
Python使用等号(=)作为赋值运算符,例如 a = 20 就是一条赋值语句,这条语句用于将20装入变量a中-------这个过程就被称为赋值:将20赋值给变量a
例:

 a  =  20

4、定义常量

 import constant
 constant.VALUE = 5

字符串是什么

字符串的意思就是“一串字符”,比如“Hello,Virus”是一个字符串,“How are you?”也是一个字符串。Python要求字符串必须使用引号括起来,使用单引号也行,使用双引号也行---------只要两边的引号能配对即可。
例:

 a = "Hello,Virus"
 b = 'How are you?'

转义字符

适用情况:当字符串中出现多个单引号或者双引号的情况下,或者进行换行,空格等情况下,可以使用转义字符
情况1:多个单引号或者双引号
例:

str3 = 'I 'm a coder'
print(str3)

输出结果:
  File "D:\Sublime Text 3\Data\Packages\User\a.py", line 1
    str3 = 'I 'm a coder'
               ^
SyntaxError: invalid syntax

解决方法1:

str3 = 'I \'m a coder'  # \ 代表转义
print(str3)

输出结果:
I 'm a coder

解决方法2:

str3 = "I 'm a coder"  # 双引号包单引号
print(str3)

输出结果:
I 'm a coder

转义字符说明
在这里插入图片描述
下面简单列举几个:
\n

s = 'Hello\nCharlie\nGood\nMorning'
print(s)

输出结果:
Hello
Charlie
Good
Morning

\t

s2 = '商品名\t\t单价\t\t数量\t\t总价'
print(s2)

输出结果:
商品名		单价		数量		总价

拼接字符串

python使用加号(+)作为字符串的拼接运算符,例:

s2 = "Hello,"
s3 = "Charlie"
print(s2+s3)

输出结果:
Hello,Charlie

如果直接将两个字符串紧挨着写在一起,python就会自动拼接它们,例:

s1 = "Hello," 'Charlie'
print(s1)

输出结果:
Hello,Charlie

注意:python不允许直接拼接数值和字符串,程序必须先将数值转换为字符串,使用repr()函数进行转换
例:

s1 = "这件衣服的价格是:"
price = 90
print(s1+price)

输出结果
Traceback (most recent call last):
  File "D:\Sublime Text 3\Data\Packages\User\a.py", line 3, in <module>
    print(s1+price)
TypeError: can only concatenate str (not "int") to str

解决:

s1 = "这件衣服的价格是:"
price = 90
print(s1 + repr(price))

输出结果:
这件衣服的价格是:90

原始字符串

由于字符串中的反斜线都有特殊的作用,因此当字符串中包含反斜线时,就需要对其进行转义。比如写一条Windows的路径:G:\publish\codes\02\2.4,如果在python程序中直接这样写肯定是不行的,那么可以怎么办呢,可以借助于原始字符串来解决这个问题。
原始字符串以“r”开头
例:

s1 = r'G:\publish\codes\02\2.4'
print(s1)

输出结果:
G:\publish\codes\02\2.4

长字符串

前面介绍python多行注释时提到使用三个引号(单引号、双引号都行)来包含多行注释内容,其实这是长字符串的写法,只是由于在长字符串中可以放置任何内容,包括放置单引号、双引号都可以,如果所定义的长字符串没有赋值给任何变量,那么这个字符串就相当于被解释器忽略了,也就相当于注释掉了。
简单概括一下就是如果三个引号(单引号、双引号没有赋值给变量的话,就相当于注释,反之赋值给变量了就是长字符串了)
例:

s = '''"What your name?"
"I am Virus,and you"
"I am lihui"'''
print(s)

输出结果:
"What your name?"
"I am Virus,and you"
"I am lihui"

字节串(bytes)(这个了解一下就可以了,本人在开发中,也只是在处理某些图片上用到)

python3新增了bytes类型,用于代表字符串(这是作者生造的一个词,与字符串对应)。字符串(str)由多个字符组成,以字符为单位进行操作;字节串(bytes)由多个字节组成,以字节为单位进行操作。

bytes和str除操作的数据单元不同之外,它们支持的所有方法都基本相同,bytes也是不可变序列。

bytes对象只负责以字节(二进制格式)序列来记录数据,至于这些数据到底表示什么内容,完全由程序决定。如果采用合适的字符集,字符串可以转换为字节串;反过来,字节串也可以恢复成对应的字符串。

由于bytes保存的就是原始的字节(二进制格式)数据,因此bytes对象可用于在网络上传输数据,也可以用于存储各种二进制格式的文件,不如图片、音乐等文件。

如果希望将一个字符串转换成bytes对象,有如下三种方式:
1、如果字符串内容都是ASCII字符,则可以通过直接在字符串之前添加 b 来构建字节串值
2、调用bytes()函数(其实是bytes的构造方法)将字符串按指定字符集转换成字节串,如果不指定字符集,默认使用UTF-8字符集。
3、调用字符串本身的encode()方法将字符串按指定字符集转换成字节串,如果不指定字符集,默认使用UTF-8字符集。

例:

#定义字节串
b3 = b'hello'
b4 = bytes('我爱学习',encoding='utf-8')
b5 = '我爱学习'.encode('utf-8')

#对字节串变成字符串
b6 = b5.decode('utf-8')
print(b3)
print(b4)
print(b5)
print(b6)

输出结果
b'hello'
b'\xe6\x88\x91\xe7\x88\xb1\xe5\xad\xa6\xe4\xb9\xa0'
b'\xe6\x88\x91\xe7\x88\xb1\xe5\xad\xa6\xe4\xb9\xa0'
我爱学习

课外知识补充

在这里简单介绍一下字符集的概念。计算机底层并不能保存字符,但程序总是需要保存各种字符的,那该怎么办呢?计算机“科学家” 就想了一个办法:为每个字符编号,当程序要保存字符时,实际上保存的实该字符的编号;当程序读取字符时,读取的其实也是编号,接下来要去查“编号-字符对应表”(简称码表)才能得到实际的字符。因此,所谓的字符集,就是所有字符的编号组成的总和,早期美国人给英文字符、数字、标点符号等字符进行了编号,他们认为所有字符加起来顶多100多个,只要1字节(8位,支持256个字符编号)即可为所有字符编号------这就是ASCII字符集。后来,亚洲国家纷纷为本国文字进行编号-----------即制订本国的字符集,但这些字符集并不兼容。于是美国人又为世界上所有书面语言的字符进行了统一编号,这次他们用了两个字节(16位,支持65536个字符编号),这就是Unicode字符集。实际使用的UTF-8、UTF-16等其实都属于Unicode字符集。

由于不同人对字符的编号完全可以很随意,比如同一个“爱” 字,我可以为其编号为99,你可以为其编号为199,所以同一个编号在不同的字符集中代表的字符完全有可能是不同的。因此,对于同一个字符串,如果采用不同的字符集来生成bytes对象,就会得到不同的bytes对象。

结语

今节课的内容有点多,希望你们能细心地阅读,并且慢慢地在编辑器上进行练习,不要只看不练,那样对你的学习是一点帮助都没有的,只有多看多练,基础才能打得牢固,才能上手快,好了,今节课的内容就讲到这里,如果在学习的过程中,遇到任何问题,扫描下面图片关注,联系作者,就可以帮你解决了,下节课讲字符串深入学习,敬请期待喔!

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值