Python for Kids
  • 0 前言
  • 1 编程环境准备
  • 2 运算符和表达式
  • 3 掌握变量
  • 4 字符串
  • 5 获取用户的输入
  • 6 条件判断
  • 7 条件判断实操
  • 8 FOR循环
  • 9 循环和列表
  • 10 WHILE循环
  • 11 WHILE循环实操
  • 12 WHILE循环再实操
  • 13 多重循环
  • 14 再谈列表
  • 15 初见函数
  • 16 函数实操
  • 17 选择排序
  • 18 冒泡排序
  • 19 递归算法之一
  • 20 递归算法实操
  • 21 快速排序
  • 22 汉诺塔游戏
  • 23 递推算法
  • 24 分治算法
  • 25 集合与组合
  • 26 贪心算法
  • 27 字典和键值对
  • 28 广度优先搜索算法
  • 29 数组和向量化计算
  • 30 随机和模拟
  • 31 数据可视化
  • 32 文件读取和分析
Powered by GitBook
On this page
  • 大纲
  • 字符串变量
  • 判断数据类型
  • 字符串的替换
  • 练习:糖份的计算

Was this helpful?

4 字符串

计算机如何处理文字呢

大纲

  • 字符串变量

  • 判断数据类型

  • 字符串的替换

  • 练习:糖份的计算

字符串变量

计算机除了可以计算数字以外,也可以处理文字类的信息,这种称之为字符串。在最开始的时候,我们学习过了print命令,它可以打印出一些字符串出来。这些字符串也可以存在一个变量里面。

x = "hello world"
print(x)
hello world

如果我们有两个字符串向量,然后用上一课学到的加法运算把它们加起来会怎么样呢?

x = "hello"
y = "world"
print(x+y)
helloworld

前面我们学到的操作运算符“+”,可以用来对两个数值进行求和,如果是两个字符串的话,加号可以把它们拼接起来。

output = "你"+"好"
print(output)
你好

如果是一个字符串和一个数字相加,会怎么样呢?

x = "hello"
y = 3
print(x+y)
TypeError                                 Traceback (most recent call last)

<ipython-input-11-24313804867b> in <module>()
      1 x = "hello"
      2 y = 3
----> 3 print(x+y)


TypeError: must be str, not int

一个字符串和一个数字是没法直接加起来的,所以会报错。但是如果将数字转换成字符串,就可以拼起来了

x = "hello"
y = str(3)
print(x+y)
hello3

这里的str是一个将数字转换成字符串的命令或函数。

如果是用一个乘法运算,会怎么样呢?

x = "hello"
y = "world"
print(x*y)
TypeError                                 Traceback (most recent call last)

<ipython-input-10-20a04a754868> in <module>()
      1 x = "hello"
      2 y = "world"
----> 3 print(x*y)


TypeError: can't multiply sequence by non-int of type 'str'

两个字符串相乘是没有意义的,所以会报错。但是如果一个字符串和一个数字相乘,意思就是将这个字符串复制多次。

x = "hello"
y = 3
print(x*y)
hellohellohello

小结一下,前面我们已经学到了,可以处理两类数据,一类是字符串,它们的特点是被引号括起来,还有一类是数值,它们是一些数字,数值可能是整数,或是带小数点的浮点数。python还可以处理其它的数据类型,目前我们先了解这两大类就够了。

判断数据类型

现在我们已经学习了数值和字符串两种类型的数据了。当一个变量赋值完成之后,我们可能忘记了它之前存的是什么类型的数据,这个时候你可以打印出来观察。

x1 = "100"
print(x1)
x2 = 100
print(x2)
100
100

上例中x1是一个字符串,x2是一个数值,它们打印出来没什么区别,所以这时候就需要专门的工具来区分。隆重介绍type这个命令。

type(x1)
str
type(x2)
int

type告诉我们x1是一个str,也就是字符串,而x2是一个int,也就是整数。

还可以将某个类型的数据转换成其它类型的数据,例如把一个str转成int,使用什么命令呢?自然就是int命令啦。

x3 = int(x1)
type(x3)
int

使用str命令就可以反过来,把一个数值转成字符串。

x4 = str(x2)
type(x4)
str

要注意的是,如果你往int里面输入的内容不是一个可以识别的数字,它就会报错,毕竟,一个英文字母是不能被转换成一个数字的。

int('abc')
ValueError                                Traceback (most recent call last)

<ipython-input-24-1e11daa61250> in <module>()
----> 1 int('abc')


ValueError: invalid literal for int() with base 10: 'abc'

整数和浮点数据之间也可以相互转换,例如

int(12.10)
12
float(12)
12.0

可以使用round来对浮点数字进行精度上的截取。

round(3.14159,2)
3.14

再说明一下整数和浮点数的区别,整数是不带小数点的,而浮点数是带有小数点的。int会把小数部分给截断掉。

字符串的替换

字符串还可以做一些替换操作,下例中引号中的有一个{x},表示这是一个占位符,输出时并不真正显示{x},真正显示的是format里面的那个42。

output = 'X等于: {x}'.format(x=42)
print(output)
X等于: 42
output = '坐标: {latitude}, {longitude}'.format(latitude='37.24N', longitude='-115.81W')
print(output)
坐标: 37.24N, -115.81W

这种处理有利于更灵活的输出显示,这种操作叫做字符串格式化。

小结:变量可以存放数值和字符串等多种数据类型,通过type命令可以判断变量是数值还是字符串,它们之间也可以相互转换。加号可以对数值做求和,也可以对字符串进行拼接,字符串可以通过format来进灵活显示。

练习:糖份的计算

小明很喜欢含糖份的饮料,但糖吃多了影响健康,现在有一杯含糖20%的饮料150克,问需要加入多少白水,饮料中的含糖量为变成15%?

tang = 150*0.2
tangshui =  tang/0.15
shui = tangshui - 150
print("应该加水: {x}克".format(x=shui))
应该加水: 50.0克
Previous3 掌握变量Next5 获取用户的输入

Last updated 4 years ago

Was this helpful?