python基础(2)---数据类型
1.python版本间的差异:
2.x与3.x版本对比
version | 2.x | 3.x |
print " "或者print()打印都可以正常输出 |
只能print()这种形式打印,否则会出现 SyntaxError |
|
input raw_inut |
input:输出原生的数据类型,输入什么类型的值,就输出什么类型 raw_input:全部以字符串形式输出 |
3.x取消了raw_input方法,只能使用input() 方式提示输入字符串, 该方法和2.x版本的raw_input() 如果想要实现与2.x input()输出原生数据类型的值, 可以使用eval(input()) |
class | 2.x支持新式类,和经典类,使用新式类时,类继承顺序会影响最终继承的结果 | 必须使用新式类,解决了类间继承顺序问题 |
/ | 例如:1/2,2.x输出的值为0 | 例如:1/2 3.x输出的值为0.5 |
2.python数据类型
int 整型,如1,123,1234,-1,-123...,范围在-2**31~2**31-1之间,取决于操作系统,不会小于这个范围。
float 浮点型,如1.1,1.12,-1.1,-1.12...
str 字符串,如'hello','123','abc'...字符串需要使用单引号或者双引号引起来。
bool 布尔类型,只有两个值,真:True,假:False,任何非零的数据类型,结果都为真,结果为0时,则为False。
long 这个类型只存在2.x版本,取值范围无限大,取决于可用的虚拟内存。
complex 复数,如3.12j,2.45e-6j...
元组(tuple) 如(‘1’,‘abc’,'hello')。
列表(list) 如['a','abc','python']。
字典(dict) 如{'name':'tom', 'age':'20', 'job':'IT'}。
3.python编码
python 2.x版本默认string字符编码,1个字符只能存8bit,可以使用内置函数,chr()和ord()进行字符转换。
python 3.x版本默认使用unicode编码格式,可以使用内置函数unichr()和ord()进行字符转换。
4.python命名规范
python变量名(标识符)只能以字母或下划线开头,且不能包含特殊字符,注意python保留关键字不能当作变量名,这样等于重写python的内置方法,可能会影响其他方法的调用,具体python保留字,见4.1小节内容。
为了书写规范,建议变量名使用统一的风格书写,例如:驼峰是 TestLoginSucess 或者test_login_success。
单个前导下划线开头的标识符,意味着约定为私有的。
两个前导下划线开头的标识符,表示强烈专用的标识符。
如果标识符还有两个下划线结束,则该标识符是语言的特殊名称。
另外需要说明的是Python是动态预先,也即是说在定义变量的时候不用指定变量的的数据类型,Python会在个变量赋值的时候自动改变变量的数据类型。
4.1python保留字
#通过导入keyword模块,我们可以查看当前python保留了哪些关键字
import keyword #查看python保留关键字
keyword.kwlist #.x输出['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'] #.x输出['False', 'None', 'True', 'and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield'] #注意,.x新增了['False','None','True','nonlocal']同时去除了2.x ['exec']的关键字,大家在命名规范时,应该遵循3.x的关键字,便于向后兼容 #如果不确定该变量命名是否为关键字,也可以通过下面这种方法,检查是否为关键字
keyword.iskeyword('name') #返回False,则说明该变量不是系统保留关键字,即可用
5.python注释
python有两种注释方式,一种是单行注释,在语句前加#符号,也可以使用多行注释,使用连续的三个单引号在需要注释的内容范围两侧添加,也可以使用连续的三个双引号。
例:
'''
单引号注释
'''
"""
双引号注释
"""
6.python的语法
python以简洁著称,摒弃了其他如c的{}花括号书写方式,以及未来追求语言的可读性,强制要求语法缩进,同一个语句块的代码缩进必须相同,负责会出现缩进错误IndentationError,如果想一行写多条语句,可以使用分好;隔开
7.python运算符
7.1算术运算符
运算符 | 描述 | 示例 |
+ | 加法 |
>>> 14 - 5 |
- | 减法 |
>>> 14 - 5 |
* | 乘法 |
>>> 5 * 14 |
/ | 除法 |
>>> 14 / 5 |
% | 取模,即两个的数商的余数部分 |
>>> 14 % 5 |
** | 幂运算 |
>>> 2 ** 3 |
// | 整除,返回两个数的商的整数部分 |
>>> 10 // 3 |
7.2比较运算符:比较运算符不局限于数字,字符串、列表等都可以
运算符 | 描述 | 示例 |
== | 判断两个对象是否相等(相等返回True,不相等返回False) |
>>> 'abc' == 'abc' |
!= | 判断连个对象是否不相等(与==相反,相等返回False,不相等返回True) |
>>> 1 != 2 |
<> | 判断连个对象是否不相等(同上,但不建议使用) | |
> | 判断第一对象是否大于第二个对象,大于返回True,不大于(包括等于)返回Fasle |
>>> 3 > 1 |
< | 判断第一对象是否小于第二个对象,小于返回True,不小于(包括等于)返回Fasle |
>>> 3 < 4 |
>= | 判断第一个对象是否大于等于第二个对象,大于等于则返回True,否则返回False |
>>> 3 >= 3 |
<= | 判断第一个对象是否小于等于第二个对象,小于等于则返回True,否则返回False |
>>> 3 <= 4 |
7.3赋值运算符:进行赋值运算
运算符 | 描述 | 示例 |
= | 赋值 | a = c |
+= | 自加赋值 a += 1等价于 a = a + 1 | a += 1 |
-= | 自减赋值 a -= 1等价于 a = a - 1 | a -= 1 |
*= | 自乘赋值 a *= 1等价于 a = a * 1 | a *= 1 |
/= | 自除赋值 a /= 1等价于 a = a / 1 | a /= 1 |
%= | 自取模赋值 a %= 1等价于 a = a % 1 | a %= 1 |
**= | 自求幂赋值 a **= 1等价于 a = a ** 1 | a**= 1 |
//= | 自整除赋值 a //= 1等价于 a = a // 1 | a //= 1 |
7.4位运算符:按二进制位进行逻辑计算
运算符 | 描述 | 示例 |
& | 按位与 |
>>> 5 & 14 |
| | 按位或 |
>>> 5 | 14 |
^ | 异或 |
>>> 5 ^ 14 |
<< | 左移 |
>>> 14 << 2 |
>> | 右移 |
>>> 14 >> 2 |
8.python的数据类型操作
8.1变量和常量
变量是用来存储程序运行期间需要临时保存可以不断改变的数据的标识符,python有自身的内存回收机制,所以在开发过程中不用考虑变量的销毁等。
python和其他静态语言如C等不同的是,python的变量在赋值的时候解释器现在内存中创建数据对象,然后再创建变量,并把变量指向之前创建的数据对象。有点像C语言的指针,所以也有人说python虽然没有指针的概念,但一切皆指针
8.2变量的赋值操作
a = #给a变量赋值为2
b = a #将变量a 的值赋给变量b,相当于是将a指向的内存空间3同时指向了b,此时b也等于3
a = #给a变量赋值为5,此时由于之前的a已经被赋予一次值,python解释器会将a指向的内存空间改为指向5 print(a,b)
(,)
#此时打印输出为5,,因为虽然b=a,且a的值被改变了,但是b=a仅仅只是将b指向了a指向的内存地址,并不是真正意义上的指向a,a的值改变,仅仅是改变a指向的内存地址,当多个变量指向同一个地址空间时,python自身的内存回收机制,会在这块内存空间做一个标记,有多少个人引用了这块内存空间,就在+多少个1,直到引用为0,此时python解释器会将该内存空间收回,这也是有别于其他开发语言的最大特点之一,不需要关注内存的回收,
#当想查看当前的两个变量是否指向同一个内存地址时,可以使用id()方法
a =
print(id(a))
#打印结果为 b = a
print(id(b))
#打印结果为
#可见,a和b指向的都是同一块地址空间,注:以上两个值与使用的平台有关,不一定都是一样的数值,但是这两个数值一定是相等的 a =
print(id(a)) #打印结果为 print(id(b))
#打印结果为
#通过观察两个变量的指针变化,可以发现,a值的改变并不会影响到已经被赋值的b
python基础(2)---数据类型的更多相关文章
- Python基础之数据类型
Python基础之数据类型 变量赋值 Python中的变量不需要声明,变量的赋值操作既是变量声明和定义的过程. 每个变量在内存中创建,都包括变量的标识,名称和数据这些信息. 每个变量在使用前都必须赋值 ...
- 第二章:python基础,数据类型
"""第二章:python基础,数据类型2.1 变量及身份运算补充2.2 二进制数2.3 字符编码每8位所占的空间位一个比特,这是计算机中最小的表示单位.每8个比特组成一 ...
- python基础一数据类型之字典
摘要: python基础一数据类型之一字典,这篇主要讲字典. 1,定义字典 2,字典的基础知识 3,字典的方法 1,定义字典 1,定义1个空字典 dict1 = {} 2,定义字典 dict1 = d ...
- 第一节 Python基础之数据类型(整型,布尔值,字符串)
数据类型是每一种语言的基础,就比如说一支笔,它的墨有可能是红色,有可能是黑色,也有可能是黄色等等,这不同的颜色就会被人用在不同的场景.Python中的数据类型也是一样,比如说我们要描述一个人的年龄:小 ...
- python基础一数据类型之集合
摘要: python基础一中介绍数据类型的时候有集合,所以这篇主要讲集合. 1,集合的定义 2,集合的功能 3,集合的方法 1,集合的定义 list1 = [1,4,5,7,3,6,7,9] set1 ...
- python基础一数据类型之元祖
摘要: python基础一中写到数据类型元祖,那么这篇主要讲元祖. 1,元祖定义 tuple1 = (1,2,'a','b') 元祖是不可变数据,所以又名只读列表.那么如何让是元祖可变呢?可以在元祖中 ...
- python基础一数据类型之列表
摘要: python基础一中写到列表,那么这篇主要讲列表. 1,定义列表 2,列表.元祖.字符串都属于序列,都可以用用索引和切片. 3,列表的方法 1,定义列表 list1 = ['a','b',1, ...
- Python基础一数据类型之数字类型
摘要: python基础一中提到了数据类型,这里主要讲解的是数字类型. 数字类型: 1,整型 2,长整型 3,浮点型 4,复数型 1,整型(int) 定义a = 1 通过type函数查看数据类型,整型 ...
- python基础(二)----数据类型
Python基础第二章 二进制 字符编码 基本数据类型-数字 基本数据类型-字符串 基本数据类型-列表 基本数据类型-元组 可变.不可变数据类型和hash 基本数据类型-字典 基本数据类型-集合 二进 ...
- Python学习day04 - Python基础(2)数据类型基础
<!doctype html>day04 - 博客 figure:last-child { margin-bottom: 0.5rem; } #write ol, #write ul { ...
随机推荐
- BZOJ3156: 防御准备 【斜率优化dp】
3156: 防御准备 Time Limit: 10 Sec Memory Limit: 512 MB Submit: 2207 Solved: 933 [Submit][Status][Discu ...
- 【简单算法】40.Fizz Buzz
题目: 写一个程序,输出从 到 n 数字的字符串表示. . 如果 n 是3的倍数,输出“Fizz”: . 如果 n 是5的倍数,输出“Buzz”: .如果 n 同时是3和5的倍数,输出 “FizzBu ...
- Codeforces Round #344 (Div. 2) A
A. Interview time limit per test 1 second memory limit per test 256 megabytes input standard input o ...
- c++模板类编译错误
最近想写一个c++模板类,实现一个有向图.依据惯例,类在头文件中声明,类的实现写在源文件中.可是编译的时候出现了如下错误: undefined reference to 通过谷歌发现,这是一个很常见的 ...
- shell编程:条件测试与比较(六)
条件测试方法综述 test条件测试的简单语法及测试 范例6-1 测试文件(在test命令中使用-f选项:文件存在且为不同文件则表达式成立) [root@adminset ~]# test -f fil ...
- [LeetCode] 13. Roman to Integer ☆☆
Given a roman numeral, convert it to an integer. Input is guaranteed to be within the range from 1 t ...
- 关于$.data(element,key,value)与ele.data.(key,value)的区别
<!doctype html> <html> <head> <meta charset="utf-8"> <title> ...
- gdoi2017
今年的gdoi第一天t1大水题一道 裸的kmp 但是 我把记录长度的int数组开成了char类型 正解变爆零 心态爆炸......... 后面的第二题两千字题目以及五千字附加故事(我是没有去看,据说全 ...
- 【BZOJ】1455 罗马游戏
[算法]可并堆(左偏树) #include<cstdio> #include<algorithm> using namespace std; ; int l[maxn],r[m ...
- python学习笔记(三)之变量和字符串
在其他语言中,变量就是有名字的存储区,可以将值存储在变量中,也即内存中.在Python中略有不同,python并不是将值存储在变量中,更像是把名字贴在值上边.所以,有些python程序员会说pytho ...