变量和类型
在程序设计中,变量是一种存储数据的载体。计算机中的变量是实际存在的数据或者是存储器中存储数据的一块内存空间,变量的值可以被读取和修改,这是所有计算和控制的基础。计算机能处理的数据有很多类型,除了数值之外还可以处理文本、图形,音频,视频等各种各样的数据,那么不同的数据就需要定义不同的存储类型。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
。
变量命名
对于每个变量我们需要给它取一个名字,就如同我们每个人都有属于自己的响亮的名字一样。在Python中,变量命名需要遵循以下这些必须遵守硬性规则和强烈建议遵守的非硬性规则。
- 硬性规则:
- 变量名有字母(广义的Unicode字符,不包含特殊字符)、数字和下划线构成,数字不能开头
- 大小写敏感
- 不要跟关键字(有特殊含义的单词)和系统保留字(如函数、模块等的名字)冲突
- PE 8 要求
- 用小写字母拼写,多个单词用下划线连接
- 受保护的实例属性用单个下划线开头
- 私有的实例属性用两个下划线开头
变量的使用
a = 321
b = 123
print(a+b)
print(a-b)
print (a*b)
print(a/b)
print(a//b)
print(a % b)
print(a**b)
a = int(input('a='))
b = int(input('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))
print('%d / %d = %.2f' % (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))
a = 100
b = 'aaaa'
c = 5 + 76j
d = 123.34
e = True
print(type(a))
print(type(b))
print(type(c))
print(type(d))
print(type(e))
在对变量类型进行转换时可以使用Python的内置函数(准确的说下面列出的并不是真正意义上的函数,而是后面我们要讲到的创建对象的构造方法)。
- int():将一个数值或字符串转换成整数,可以指定进制。
- float():将一个字符串转换成浮点数。
- str():将指定的对象转换成字符串形式,可以指定编码。
- chr():将整数转换成该编码对应的字符串(一个字符)。
- ord():将字符串(一个字符)转换成对应的编码(整数)。
运算符
Python支持多种运算符,下表大致按照优先级从高到低的顺序列出了所有的运算符,我们会陆续使用到它们。
运算符 | 描述 |
---|---|
[] [:] |
下标,切片 |
** |
指数 |
~ + - |
按位取反, 正负号 |
* / % // |
乘,除,模,整除 |
+ - |
加,减 |
>> << |
右移,左移 |
& |
按位与 |
^ ` |
` |
<= < > >= |
小于等于,小于,大于,大于等于 |
== != |
等于,不等于 |
is is not |
身份运算符 |
in not in |
成员运算符 |
not or and |
逻辑运算符 |
= += -= *= /= %= //= **= &= ` |
=`^= >>= <<= |
练习
# -*- coding:utf-8 -*-
'''
@Description: null
@Version: 1.0
@Autor: AaronLuo
@Date: 2020-01-29 18:45:29
@LastEditors : AaronLuo
@LastEditTime : 2020-01-29 20:06:10
'''
# 输入华摄度转摄氏度
# F = 1.8C + 32
def gbkChange(str):
return str.decode('utf-8').encode('gbk')
f = float(input(gbkChange('请输入华摄度:\t1')))
C = (f-32)/1.8
print(gbkChange('%.2f华摄度 = %.2f摄氏度' % (f, C)))
import math
def gbkChange(str):
return str.decode('utf-8').encode('gbk')
# 输入圆的半径计算计算周长和面积
# S = πR^2
# C = 2πR
r = float(input(gbkChange('请输入半径:\t')))
s = math.pi * r * r
c = math.pi * r * 2
print(gbkChange('周长为:%.2f,面积为:%.2f' % (s, c)))
# 输入年份判断闰平年
def gbkChange(str):
return str.decode('utf-8').encode('gbk')
# 输入年份判断闰平年
year = int(input(gbkChange('请输入年份:')))
if(year % 4 == 0 and year % 100 != 0 or year % 400 == 0):
print(gbkChange('%d年是闰年' % year))
else:
print(gbkChange('%d年是平年' % year))
Windows Python2.7 编码解决
# -*- coding:utf-8 -*-
# unicode 先解码为utf-8,再编码为windows可识别的gbk
def gbkChange(str):
return str.decode('utf-8').encode('gbk')