数据与变量——编程的来源
一、数据从哪里来?
1、我们可以把程序看成数据的【加工厂】,加工数据,生产数据,呈现数据。在编程世界中几乎一切行为都是围绕着数据展开的。
2、从本质上来说,所有程序和计算机中的数据都是来自于我们自己——人类中外部输入,计算机并不生产我们说使用的数据信息。
3、数据主要来源于以下几个方面:
(1)用户的输入。
(2)计算设备加工生产。
(3)来自于其他设备的数据库或者云端的接口。
二、数据的类型
任何编程语言中有不同的数据类型,使用编程语言自带的数据类型可以操作电脑中的任何类型,也就是说电脑中的任何格式的数据都能在这门语言的数据类型中找到对应,或者说进行转化。
1、字符串。
(1)对应文字类型的数据,字符串的特征就是你在单引号或者双引号之间写的任何东西都被视作字符串类型。
(2)字符串的用途是文本处理,比如说我们读取了一个txt文本并在编程语言中去处理它,他一定是字符串类型。
(3)有时候字符串也用来传递人能看懂的信息,比如把程序结果用文字print出来。
(4)字符串的标志是引号和双引号,如果我们的文字中出现了这两个标点就会发生麻烦——让Python误以为是字符串的结束,比如"it's a string"。针对这种情况,我们需要使用转义符号【\】加在前面。像这样的转移符号还有几个,在后面会详细介绍。
2、数字
(1)数字主要用于计算,这是一种为了处理数学相关工作的数据类型。数字又分为不同的类型,最常用的是整数(int)与浮点(float),它们很容易区分,不带小数点的我们称之为整数类型(int),带小数点的我们称之为浮点类型(float)。使用二者进行混合运算的时候一定要小心。
(2)还有一些其他的数字类型可供科学计算使用,这里就不多介绍了。
3、容器
(1)为了方便处理数据而出现的特殊数据类型,更常见的叫法是【数据结构】。数据结构的意义在于,它可以把其他的数据按照特定的使用目的连接起来。如果说数据是不同的物品的话,那么数据结构就像是不同的容器,把物品用容器归纳起来可以方便我们识别和查找,让我们知道我要找的东西只在这个包里。
(2)数据结构又分为不同类型,常用的有:列表、字典、元组、集合。
list = [val1,val2,val3,val4]
dict = {key1:val1,key2:val2}
tuple = (val1,val2,val3,val4)
set = {val1,val2,val3,val4}
4、布尔
(1)布尔类型的数据只有两个成员:真(True)和伪(False)。布尔类型主要应用在条件判断上面,是描述一致条件是否是发生了的准绳、触发器。发生了就叫做True,没有发生就叫False。
(2)Python会十分严格的区分大小写,所以True和False的开头都是大写才是正确的写法。
(3)在Python中,所有数据都有自己对应的布尔值,我们可以通过使用bool()函数来进行测试。
5、None
一种特殊的类型,代表着【无】的概念,用起来类似于False,但概念完全不是一回事。
if v = None
print("Not fount")
当v等于None,打印Not fount
6、自定义
自己创造的特定类型的数据。通常说的【面向对象】进行的开发,是一种特殊的数据的【集合体】,对象是一种特殊的数据类型。
7、可以使用type()函数来进行测试数据类型。
三、数据与变量
1、变量赋值:左边的是变量,右边的是值。
2、给数据起名字的规则
(1)数字不能作为开头,但可以作为结尾。
(2)标点符号中只有下划线可以出现在名字里面。
(3)同一个数据不只有一个名字。
(4)同样的名字只能对应一个数据。
四、数据的运算
1、我们可以通过运算对数据进行简单地加工,这个过程就像是数学中的运算式一样,可以通过【+】、【-】、【*】、【/】来运算。我们通常称有运算符号存在的运算式为【表达式】。
2、加(+)、减(-)、乘(*)、除(/)、取模(%)、幂(**)、取整除(//)。
3、字符串可以使用【+】进行拼接,使用【*】进行重复,但只有这两个符号是有意义的,其他的数学符号并不适用。
五、对数据使用方法和函数
1、方法是函数的兄弟,它们的不同之处在于方法限定了使用的对象,如果你正在使用可以自动补全的编辑器或者是 IDE 的话(比如 PyCharm),【点】之后自动补全所提示的就是这个类型能够使用的所有方法。
2、方法的代码只需要正向阅读就可以了,也就是对于点前面的【对象】我们使用了特定的【处理方法】。
3、【点】后面的方法,自动补全并不是语言内置的功能,也就是说在有的编辑器你会看不到补全——但这仅仅是工具的问题 ,因为只要是对象就一定能使用方法,无论是否有补全功能。
4、几个简单的函数
(1)print 函数接收所有类型的参数,目的就是打印参数,所以不会错误。
(2)len 函数用来测量长度,只接受字符串类型和容器类型的数据作为参数,输入数字会错误。
(3)abs 函数用来求解数字绝对值,只接受数字类型,输入字符串会错误。
(4)数字 123 经过 str() 函数的转化,就会从整数类型转化成字符串类型。
5、函数不像方法那样对使用的对象进行了限制。因为我们提供给函数参数时,其中有一个先决条件就是选用符合函数设计预期的数据作为参数,同时这对方法括号内的参数也是同样适用的。
6、虽然没有太多说明,但是函数在使用的时候都会默认你知道这个函数需要什么类型的参数,如果要是传入非预期类型的参数,绝大多数情况下就会出现错误。
7、最后要注意的是,数据无论是经过方法还是函数的使用之后,不一定还是原来的类型,很有可能转化成了其他的数据类型。
六、总结
1、字符串类型:在单引号或双引号之间写的任何东西。
2、数字类型又分为整数和浮点数,不带小数点的是整数,带小数点的是浮点数。
3、容器类型方便我们归纳其他数据,常用的有:列表、字典、元组、集合。
4、布尔类型分为两种:True和False。
5、看起来像等式的行为是在给数据起名字,其中answer是变量名字,42是值。
6、可以通过运算加工数据。数字类型可以使用【+】、【-】、【*】、【/】等运算符来进行运算。字符串可以使用【+】进行拼接,使用 【*】进行重复。
7、可以通过方法和函数来处理数据,方法限制了使用的对象,函数的参数限制了使用的对象类型。
七、练习
1、变量赋值。以下哪种变量赋值的写法是正确的?
A、price = 5.8
B、01price = 6
C、orange_price = 6
D、Price = 5.8
答案:ACD。
2、字符串的写法
编程实现:分别在屏幕输出 Python之禅里有一句"Simple is better than complex."、 Python之禅里有一句'Simple is better than complex.'(注意单引号、双引号)
答案:
# 输出带双引号的句子
print('Python之禅里有一句"Simple is better than complex."')
print("Python之禅里有一句\"Simple is better than complex.\"")
# 输出带单引号的句子
print("Python之禅里有一句'Simple is better than complex.'")
print('Python之禅里有一句\'Simple is better than complex.\'')
单引号 ' ' 和双引号 " " 都可以用来包装字符串。反斜杠 \ 是字符串中的转义符,\' 用于在字符串中表示单引号,\" 用于表示在字符串中表示双引号。
3、复利计算。复利是一件神奇的事情,正如富兰克林所说:“复利是能够将所有铅块变成金块的石头”。复利的计算公式是本利和 = 本金 * (1 + 投资回报率)ⁿ,n代表年数。下面使用 Python 来计算,5 万元本金,投资回报率 4%,投资年限为 30 年,最终会得到多少钱?
答案:
# 计算本息和
sum1 = 50000 * (1 + 0.04) ** 30
print(sum1) # 输出162169.87550137707
** 表示幂运算
4、用循环来重复。网络上有一段时间流行一句话”重要的事情说三遍!“,希望可以编程实现一个函数,把”明天就要放假了!“这句话重复三遍,并在最后加上”重要的事情说三遍!“这句话。输出示例:
明天就要放假了!
明天就要放假了!
明天就要放假了!
重要的事情说三遍!
答案:
# “重要的事情说三遍”编程练习
# \n 表示换行
string = '明天就要放假了!\n'
end = '重要的事情说三遍!\n'
# string*3 表示对一个字符串重复三遍
print(string*3 +end)
5、修正报错。假设有一件卫衣,原价 300 元,双11期间打五折,有一条运动裤,原价也是 300 元,双11期间打八折,下面的代码是为了输出卫衣和运动裤的原价和双 11 价(双 11 价用双引号包起来)。但是,代码中存在一些问题,请根据错误提示修正代码并使其可以正确运行。
# 编程计算原价和折扣价
price = 300
hoodie = price
pants = price
print("卫衣的原价是"+hoodie+"元。")
print("运动裤的原价是"+pants+"元。")
hoodie = hoodie * 0.5
pants = pants * 0.8
print("卫衣的"双11价"是"+hoodie+"元。")
print("运动裤的"双11价"是"+pants+"元。")
答案:
# 编程计算原价和折扣价
price = 300
hoodie = price
pants = price
print("卫衣的原价是"+str(hoodie)+"元。")
print("运动裤的原价是"+str(pants)+"元。")
hoodie = hoodie * 0.5
pants = pants * 0.8
print("卫衣的\"双11价\"是"+str(hoodie)+"元。")
print("运动裤的\"双11价\"是"+str(pants)+"元。")
同一个数据可以有多个名字,同一个名字只能对应一个数据。整数类型的变量不能直接拼接到字符串中输出,需要利用 str() 函数,将其变为字符串类型的变量,然后再进行操作。