变量存储在内存中的值。这就意味着在创建变量时会在内存中开辟一个空间。
基于变量的数据类型,解释器会分配指定内存,并决定什么数据可以被存储在内存中。
因此,变量可以指定不同的数据类型,这些变量可以存储整数,小数或字符。
变量赋值
Python 中的变量赋值不需要类型声明。
每个变量在内存中创建,都包括变量的标识,名称和数据这些信息。
每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。
等号(=)用来给变量赋值。
等号(=)运算符左边是一个变量名,等号(=)运算符右边是存储在变量中的值。例如:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
counter = 100 # 赋值整型变量
miles = 1000.0 # 浮点型
name = "John" # 字符串
print counter
print miles
print name
多个变量赋值
Python允许同时为多个变量赋值。例如:
a = b = c = 1
以上实例,创建一个整型对象,值为1,三个变量被分配到相同的内存空间上。
您也可以为多个对象指定多个变量。例如:
a, b, c = 1, 2, "john"
以上实例,两个整型对象 1 和 2 分别分配给变量 a 和 b,字符串对象 "john" 分配给变量 c。
标准数据类型
在内存中存储的数据可以有多种类型。
例如,一个人的年龄可以用数字来存储,他的名字可以用字符来存储。
Python 定义了一些标准类型,用于存储各种类型的数据。
Python有五个标准的数据类型:
Numbers(数字)
String(字符串)
List(列表)
Tuple(元组)
Dictionary(字典)
Numbers(数字)
整数,用int表示,来自单词:integer
浮点数,用float表示,就是单词:float
如下图所示:
直接在交互界面输入数字,Python就会为该数字分配内存地址,可以通过id()函数来查询内存地址,用type()函数查询类型。
String(字符串)
字符串
字符串常用的三种操作方式:字符串的访问、字符串拼接、字符串格式化
1. 字符串的访问
python的字串列表有2种取值顺序:
从左到右索引默认0开始的,最大范围是字符串长度少1
从右到左索引默认-1开始的,最大范围是字符串开头
如果你要实现从字符串中获取一段子字符串的话,可以使用
[头下标:尾下标] 来截取相应的字符串,其中下标是从 0 开始算起,可以是正数或负数,下标可以为空表示取到头或尾。
[头下标:尾下标] 获取的子字符串包含头下标的字符,但不包含尾下标的字符
例子说明:
s = "abcdef"
print (s[0:3]) #从0开始算起,取0、1、2位不算3位
返回'abc'
print (s[:]) # 返回整个字符串
返回'abcdef'
print (s[1:4]) # 从第1位取,取第1到第3位
返回'bcd'
print (s[:4] # 从第0位取至第3位
返回'abcd'
print (s[1:]) #从第一位开始取到最后一位
返回'bcdef'
str = 'abcde'
print(str[-5:-1]) # 取头不取尾
返回'abcd'
print(str[-5:] #从-5开始截取所有字符
返回'abcde'
Python 列表截取可以接收第三个参数,参数作用是截取的步长,以下实例在索引 1 到索引 4 的位置并设置为步长为 2(间隔一个位置)来截取字符串:
2.字符串拼接
用+号实现连接或者用号来连接,加号(+)是字符串连接运算符,星号()是重复操作
>>> "py" + "thon" # 直接拼接起来
'python'
>>> "py" * 3 重复3遍
'pypypy'
运行下面的代码,熟悉input()函数
name = input("What is your name?")
age = input("How old are you?")
print ("Your name is:", name)
print ("You are " + age + " years old.")
after_ten = int(age) + 10
print ("You will be " + str(after_ten) + " years old after ten years.")
前面演示了print()的使用,除了打印一个字符串之外,还可以打印字符串拼接结果。
print "You are " + age + " years old."
注意,那个变量age必须是字符串,如最后的那个语句中:
print "You will be " + str(after_ten) + " years old after ten years."
这句话里面,有一个类型转化,将原本是整数型after_ten转化为了str类型。否则,就包括,不信,你可以试试。
同样注意,在after_ten = int(age) + 10中,因为通过raw_input得到的是str类型,当age和10求和的时候,需要先用int()函数进行类型转化,才能和后面的整数10相加。
3.字符串格式化
>>> "I like %s"
'I like %s'
在这个字符串中,有一个符号:%s,就是一个占位符,这个占位符可以被其它的字符串代替。比如:
>>> "I like %s" % "python"
'I like python'
>>> "I like %s" % "Pascal"
'I like Pascal'
这是较为常用的一种字符串输出方式。
占位符 | 说明 |
---|---|
%s | 字符串(采用str()的显示) |
%r | 字符串(采用repr()的显示) |
%c | 单个字符 |
%b | 二进制整数 |
%d | 十进制整数 |
%i | 十进制整数 |
%o | 八进制整数 |
%x | 十六进制整数 |
%e | 指数 (基底写为e) |
%E | 指数 (基底写为E) |
%f | 浮点数 |
%F | 浮点数,与上相同 |
%g | 指数(e)或浮点数 (根据显示长度) |
%G | 指数(E)或浮点数 (根据显示长度) |
例如:
>>> a = "%d years" % 15
>>> print a
15 years
当然还可以在一个字符串中设置多个占位符,就像下面这样.
>>> print ("suzhou is more than %d years. %s lives in here." % (2500,"utee"))
suzhou is more than 2500 years. utee lives in here.
对于浮点数字的打印输出,还可以限定输出的小数位数和其它样式。
>>> print "Today's temperature is %.2f" % 12.235
Today's temperature is 12.23
>>> print "Today's temperature is %+.2f" % 12.235
Today's temperature is +12.23
在Python中还有新的格式化方法:str.format()
基本语法是通过 {} 和 : 来代替以前的 % 。
format 函数可以接受不限个参数,位置可以不按顺序。
这就是python非常提倡的string.format()的格式化方法,其中{索引值}作为占位符,
这种方法真的是非常好,而且非常简单,只需要将对应的东西,按照顺序在format后面的括号中排列好,分别对应占位符{}即可。如果你觉得还不明确,还可以这样来做。
>>> print "Suzhou is more than {year} years. {name} lives in here.".format(year=2500, name="utee")
Suzhou is more than 2500 years. qiwsir lives in here.