python两个不同变量相加_Python之旅2-----变量、运算与编码1. 指令和程序
计算机的硬件系统通常由五⼤部件构成,包括:运算器、控制器、存储器、输⼊设备和输出设备。
其中,运算器和控制器放在⼀起就是我们通常所说的中央处理器,它的功能是执⾏各种运算和控制指令以及处理计算机软件中的数据。我们通常所说的程序实际上就是指令的集合,我们程序就是将⼀系列的指令按照某种⽅式组织到⼀起,然后通过这些指令去控制计算机做我们想让它做的事情。
今天我们⼤多数时候使⽤的计算机,虽然它们的元器件做⼯越来越精密,处理能⼒越来越强⼤,但究其本质来说仍然属于“冯·诺依曼结构”的计算机。“冯·诺依曼结构”有两个关键点,⼀是指出要将存储设备与中央处理器分开,⼆是提出了将数据以⼆进制⽅式编码。
⼆进制是⼀种“逢⼆进⼀”的计数法,跟我们⼈类使⽤的“逢⼗进⼀”的计数法没有实质性的区别,⼈类因为有⼗根⼿指所以使⽤了⼗进制(因为在数数时⼗根⼿指⽤完之后就只能进位了,当然凡事都有例外,玛雅⼈可能是因为长年光着脚的原因把脚趾头也算上了,于是他们使⽤了⼆⼗进制的计数法,在这种计数法的指导下玛雅⼈的历法就与我们平常使⽤的历法不⼀样,⽽按照玛雅⼈的历法,2012年是上⼀个所谓的“太阳纪”的最后⼀年,⽽2013年则是新的“太阳纪”的开始,后来这件事情被以讹传讹的⽅式误传为”2012年是玛雅⼈预⾔的世界末⽇“这种荒诞的说法,今天我们可以⼤胆的猜测,玛雅⽂明之所以发展缓慢估计也与使⽤了⼆⼗进制有关)。
对于计算机来说,⼆进制在物理器件上来说是最容易实现的(⾼电压表⽰1,低电压表⽰0),于是在“冯·诺依曼结构”的计算机都使⽤了⼆进制。虽然我们并不需要每个程序员都能够使⽤⼆进制的思维⽅式来⼯作,但是了解⼆进制以及它与我们⽣活中的⼗进制之间的转换关系,以及⼆进制与⼋进制和⼗六进制的转换关系还是有必要的。如果你对这⼀点不熟悉,可以⾃⾏使⽤或者百度百科科普⼀下。
2. 变量和类型
在程序设计中,变量是⼀种存储数据的载体。计算机中的变量是实际存在的数据或者说是存储器中存储数据的⼀块内存空间,变量的值可以被读取和修改,这是所有计算和控制的基础。
计算机能处理的数据有很多种类型,除了数值之外还可以处理⽂本、图形、⾳频、视频等各种各样的数据,那么不同的数据就需要定义不同的存储类型。Python中的数据类型很多,⽽且也允许我们⾃定义新的数据类型(这⼀点在后⾯会讲到),我们先介绍⼏种常⽤的数据类型。
整型:Python中可以处理任意⼤⼩的整数(Python 2.x中有int和long两种类型的整数,但这种区分对Python来说意义不⼤,因此在Python 3.x中整数只有int这⼀种了),⽽且⽀持⼆进制(如0b100,换算成⼗进制是4)、⼋进制(如0o100,换算成⼗进制是64)、⼗进制(100)和⼗六进制(0x100,换算成⼗进制是256)的表⽰法。
浮点型:浮点数也就是⼩数,之所以称为浮点数,是因为按照科学记数法表⽰时,⼀个浮点数的⼩数点位置是可变的,浮点数除了数学写法(如123.456)之外还⽀持科学计数法(如1.23456e2)。
字符串型:字符串是以单引号或双引号括起来的任意⽂本,⽐如'hello'和"hello",字符串还有原始字符串表⽰法、字节字符串表⽰法、Unicode字符串表⽰法,⽽且可以书写成多⾏的形式(⽤三个单引号或三个双引号开头,三个单引号或三个双引号结尾)。
布尔型:布尔值只有True、False两种值,要么是True,要么是False,在Python中,可以直接⽤True、False表⽰布尔值(请注意⼤⼩写),也可以通过布尔运算计算出来(例如3 < 5会产⽣布尔值True,⽽2 == 1会产⽣布尔值False)。
复数型:形如3+5j,跟数学上的复数表⽰⼀样,唯⼀不同的是虚部的i换成了j。实际上,这个类型并不能算作常⽤类型,⼤家了解下就可以了。
2.1 变量命名
对于每个变量我们需要给它取⼀个名字,就如同我们每个⼈都有属于⾃⼰的响亮的名字⼀样。在Python中,变量命名需要遵循以下这些必须遵守硬性规则和强烈建议遵守的⾮硬性规则。
硬性规则:
变量名由字母(⼴义的Unicode字符,不包括特殊字符)、数字和下划线构成,数字不能开头,不能有空格。
⼤⼩写敏感(⼤写的a和⼩写的A是两个不同的变量)。
不要跟关键字(有特殊含义的单词,后⾯会讲到)和系统保留字(如函数、模块等的名字)冲突。
以下关键字不能声明为变量名:
['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 'try', 'while', 'with', 'yield']
PEP 8要求:
⽤⼩写字母拼写,多个单词⽤下划线连接。
受保护的实例属性⽤单个下划线开头(后⾯会讲到)。
私有的实例属性⽤两个下划线开头(后⾯会讲到)。
当然,作为⼀个专业的程序员,给变量(事实上应该是所有的标识符)命名时做到见名知意也是⾮常重要
的。
2.1.1 变量声明
注意:默认情况下,Python 3 源码⽂件以 UTF-8 编码,所有字符串都是 unicode 字符串。 当然你也可以为源码⽂件指定不同的编码:
在python 2.0版本中需要定义UTF-8编码,⽽在python 3.0版本上不需要定义(UTF-8)编码,可以⾃定义编码。
#_*_coding:utf-8_*_ #对于python 2.0版本,两种定义⽅式都可以
#coding:utf-8
2.2 变量的使⽤
下⾯通过⼏个例⼦来说明变量的类型和变量使⽤:
2.2.1 算数运算
C:\Users\LPJ>python
Python 3.5.2 (v3.5.2:4def2a2901a5, Jun 25 2016, 22:18:55) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> a = 1
>>> b = 2
>>> print(a+b)
3
>>> print(a*b)
2
>>> print(a-b)
-1
>>> print(a//b)
>>> print(a/b)
0.5
>>> print(a%b)
1
注:Python算术运算符
运算符
描述
实例
+
加 - 两个对象相加
a +
b 输出结果 33
-
减 - 得到负数或是⼀个数减去另⼀个数
a -
b 输出结果 9
*
乘 - 两个数相乘或是返回⼀个被重复若⼲次的字符串a * b 输出结果 252
/
除 - x除以y
a /
b 输出结果 1.75
%
二进制转换方法的口诀取模 - 返回除法的余数
a %
b 输出结果 9
**
幂 - 返回x的y次幂
a**b 为21的12次⽅结果为
7355827511386641
//
取整除 - 返回商的整数部分(向下取整)
a //
b 输出结果 1
2.2.2 变量赋值
name = "Mr Li"
name2 = name
print(name,name2)
Mr li Mr li
name = "Jack"
print("name,name2")
Jack Mr li
2.2.3 变量类型的运⽤
在Python中可以使⽤type函数对变量的类型进⾏检查。程序设计中函数的概念跟数学上函数的概念是⼀
致的,数学上的函数相信⼤家并不陌⽣,它包括了函数名、⾃变量和因变量。如果暂时不理解这个概念也不要紧,我们会在后续的章节中专门讲解函数的定义和使⽤。
"""
使⽤type()检查变量的类型
Version: 3.5.2
Author: Liu
"""
a = 100
b = 12.345
c = 1 + 5j
d = 'hello, world'
e = True
print(type(a)) #
print(type(b)) #
print(type(c)) #
print(type(d)) #
print(type(e)) #
数字(Number)类型
可以使⽤Python中内置的函数对变量类型进⾏转换。
int():将⼀个数值或字符串转换成整数,可以指定进制。
float():将⼀个字符串转换成浮点数。
str():将指定的对象转换成字符串形式,可以指定编码。
chr():将整数转换成该编码对应的字符串(⼀个字符)。
ord():将字符串(⼀个字符)转换成对应的编码(整数)
字符串(String)
python中单引号和双引号使⽤完全相同。
使⽤三引号('''或""")可以指定⼀个多⾏字符串。
转义符 '\'
反斜杠可以⽤来转义,使⽤r可以让反斜杠不发⽣转义。。 如 r"this is a line with \n" 则\n会显⽰,并不是换⾏。
按字⾯意义级联字符串,如"this " "is " "string"会被⾃动转换为this is string。
字符串可以⽤ + 运算符连接在⼀起,⽤ * 运算符重复。
Python 中的字符串有两种索引⽅式,从左往右以 0 开始,从右往左以 -1 开始。
Python中的字符串不能改变。
Python 没有单独的字符类型,⼀个字符就是长度为 1 的字符串。
字符串的截取的语法格式如下:变量[头下标:尾下标:步长]
实例1
"""
使⽤input()函数获取键盘输⼊(字符串)
使⽤int()函数将输⼊的字符串转换成整数
使⽤print()函数输出带占位符的字符串
Version: 0.1
Author: liu
"""
a = int(input('a = '))
b = int(input('b = '))
c = float(input('c = '))
print('%d + %d = %d' % (a, b, a + b))
print('%d - %f = %f' % (a, c, a - c))
print('%d * %f = %f' % (a, c, a * c))
print('%d / %d = %f' % (a, b, a / b))
print('%d // %d = %d' % (a, b, a // b))
print('%d %% %d = %d' % (a, b, a % b))
print('%d ** %d = %d' % (a, b, a ** b))
实例2
#!/usr/bin/python3
str='Runoob'
print(str) # 输出字符串
print(str[0:-1]) # 输出第⼀个到倒数第⼆个的所有字符
print(str[0]) # 输出字符串第⼀个字符
print(str[2:5]) # 输出从第三个开始到第五个的字符
print(str[2:]) # 输出从第三个开始后的所有字符
print(str * 2) # 输出字符串两次
print(str + '你好') # 连接字符串
print('------------------------------')
print('hello\nrunoob') # 使⽤反斜杠(\)+n转义特殊字符
print(r'hello\nrunoob') # 在字符串前⾯添加⼀个 r,表⽰原始字符串,不会发⽣转义
说明:上⾯的print函数中输出的字符串使⽤了占位符语法,其中%d是整数的占位符,%f是⼩数的占位
符,%%表⽰百分号(因为百分号代表了占位符,所以带占位符的字符串中要表⽰百分号必须写成%%),字符串之后的%后⾯跟的变量值会替换掉占位符然后输出到终端中,运⾏上⾯的程序,看看程序执⾏结果就明⽩啦。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论