本文主要是介绍《每天五分钟冲击python基础之字符串基础入门》(五)(重点),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
## 前言
上节课已经教大家学会了如何注释和如何使用注释来测试代码了,那么今节课就先学字符串的入门,那你们肯定会问,为什么不先教其他的变量类型(例如:数值类型:整型、浮点型、复数,运算符:算术运算符、位运算符)那些的,因为以我过往开发的经验,字符串类型是写代码的时候,经常用到,所以先将这部分抽出来先讲,其他的部分,后面再一 一讲解。
## 入门字符串前先学会定义变量
1、变量是什么呢?
变量就像一个个小小的容器,主要是用来保存数据的。
2、变量和常量有什么区别
常量一旦保存某个数据之后,该数据就不能发生改变;但变量保存的数据则可以多次发生改变,只要程序对变量重新赋值即可。
怎么理解上面这句话呢?举例说明:比如你去买杂货店买东西,椰树牌的香烟,10年一直以来的价格都是3块的,那么这个就是常量,那么芙蓉王的价格,可能3年前就25块,1年前就30块,现在买就35块,那么这个就是变量。
3、怎么定义变量
Python使用等号(=)作为赋值运算符,例如 a = 20 就是一条赋值语句,这条语句用于将20装入变量a中-------这个过程就被称为赋值:将20赋值给变量a
例:
```python
a = 20
```
4、定义常量
```python
import constant
constant.VALUE = 5
```
## 字符串是什么
字符串的意思就是“一串字符”,比如“Hello,Virus”是一个字符串,“How are you?”也是一个字符串。Python要求字符串必须使用引号括起来,使用单引号也行,使用双引号也行---------只要两边的引号能配对即可。
例:
```python
a = "Hello,Virus"
b = 'How are you?'
```
## 转义字符
适用情况:当字符串中出现多个单引号或者双引号的情况下,或者进行换行,空格等情况下,可以使用转义字符
情况1:多个单引号或者双引号
例:
```python
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:
```python
str3 = 'I \'m a coder' # \ 代表转义
print(str3)
输出结果:
I 'm a coder
```
解决方法2:
```python
str3 = "I 'm a coder" # 双引号包单引号
print(str3)
输出结果:
I 'm a coder
```
转义字符说明
![在这里插入图片描述](https://www.www.zyiz.net/i/ll/?i=20210531111723896.png?,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3ZpcnVzc3M=,size_16,color_FFFFFF,t_70)
下面简单列举几个:
\n
```python
s = 'Hello\nCharlie\nGood\nMorning'
print(s)
输出结果:
Hello
Charlie
Good
Morning
```
\t
```python
s2 = '商品名\t\t单价\t\t数量\t\t总价'
print(s2)
输出结果:
商品名 单价 数量 总价
```
## 拼接字符串
python使用加号(+)作为字符串的拼接运算符,例:
```python
s2 = "Hello,"
s3 = "Charlie"
print(s2+s3)
输出结果:
Hello,Charlie
```
如果直接将两个字符串紧挨着写在一起,python就会自动拼接它们,例:
```python
s1 = "Hello," 'Charlie'
print(s1)
输出结果:
Hello,Charlie
```
注意:python不允许直接拼接数值和字符串,程序必须先将数值转换为字符串,使用repr()函数进行转换
例:
```python
s1 = "这件衣服的价格是:"
price = 90
print(s1+price)
输出结果
Traceback (most recent call last):
File "D:\Sublime Text 3\Data\Packages\User\a.py", line 3, in
print(s1+price)
TypeError: can only concatenate str (not "int") to str
```
解决:
```python
s1 = "这件衣服的价格是:"
price = 90
print(s1 + repr(price))
输出结果:
这件衣服的价格是:90
```
## 原始字符串
由于字符串中的反斜线都有特殊的作用,因此当字符串中包含反斜线时,就需要对其进行转义。比如写一条Windows的路径:G:\publish\codes\02\2.4,如果在python程序中直接这样写肯定是不行的,那么可以怎么办呢,可以借助于原始字符串来解决这个问题。
原始字符串以“r”开头
例:
```python
s1 = r'G:\publish\codes\02\2.4'
print(s1)
输出结果:
G:\publish\codes\02\2.4
```
## 长字符串
前面介绍python多行注释时提到使用三个引号(单引号、双引号都行)来包含多行注释内容,其实这是长字符串的写法,只是由于在长字符串中可以放置任何内容,包括放置单引号、双引号都可以,如果所定义的长字符串没有赋值给任何变量,那么这个字符串就相当于被解释器忽略了,也就相当于注释掉了。
简单概括一下就是如果三个引号(单引号、双引号没有赋值给变量的话,就相当于注释,反之赋值给变量了就是长字符串了)
例:
```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字符集。
例:
```python
#定义字节串
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对象。
## 结语
今节课的内容有点多,希望你们能细心地阅读,并且慢慢地在编辑器上进行练习,不要只看不练,那样对你的学习是一点帮助都没有的,只有多看多练,基础才能打得牢固,才能上手快,好了,今节课的内容就讲到这里,如果在学习的过程中,遇到任何问题,扫描下面图片关注,联系作者,就可以帮你解决了,下节课讲字符串深入学习,敬请期待喔!
![在这里插入图片描述](https://www.www.zyiz.net/i/ll/?i=20210531150936431.png?,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3ZpcnVzc3M=,size_16,color_FFFFFF,t_70#pic_center)
这篇关于《每天五分钟冲击python基础之字符串基础入门》(五)(重点)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!