python基础(1) 数据类型和运算符
来源:互联网 发布:许岑 知乎 编辑:程序博客网 时间:2024/05/20 00:50
1、环境:windows7 + python3 + pycharm(IDE)
2、python跟C、C++、Java,JavaScript不一样,没有{}来控制块,只有缩进,所以python编程的时候,必须缩进得一致。此外,python2.x和python3.x 是两种不用的语言,并不是向下兼容的关系,python2默认情况下不支持中文,python3默认是utf-8编码,默认支持中文。以下所有的代码例子都是基于python3的。
3、python3的数据类型有Number数字、String字符串,List列表、Tuple元组、Dictionary字典、Set集合。其中数字还分为整型(int)、布尔型(bool)、浮点型(float)、复数型(complex),其中bool类型只有True和False两个值,但是他们也属于数字,Ture代表1,False代表,可以参加数字的运算。但是在python2中,在Number类型中,没有bool类型,但是有Long类型,即长整型。
4、python是一种弱类型语言,不需要指定数据类型,定义的时候直接赋值。如果对Java熟悉的话,字典就相当于java.util.Map,集合就是java.util.Set,列表就是java.util.List
a = 1b = 1.01c = Trued = 2 + 5je = "abc"f = ["abc","aaa"]g = ("abc","aaa")h = {"小明":20,1:3,"小李":10}i = {"123","12","123","1"}print(type(a)) # intprint(type(b)) # floatprint(type(c)) # boolprint(type(d)) # complexprint(type(e)) # strprint(type(f)) # listprint(type(g)) # tupleprint(type(h)) # dictprint(type(i)) # set
5、对于python文件编码的问题,如果需要指定python文件编码,需要在文件的第一行,比如指定文件为UTF-8编码代码如下,这是一行特殊的注释,让python解释器按照UTF-8编码。
# coding = UTF-8
6、运算符的问题,要说明的是乘法运算符可以操作字符串,比如以下字符串是将abc这个字符重复10次。
str = "abc" * 10print(str) # 输出 abcabcabcabcabcabcabcabcabcabc
而且没有++,–运算符。此外对于除法运算符,就是单纯的做除操作,并不是和C语言一样,整数除以整数还等于整数了,在python中,结果是多少就是多少,求商用求商运算符,求余数用余数运算符,代码如下
a = 2b = 5print(b / a) # 2.5 b除以aprint(b // a) # 2 b除以a取商print(b % a) # 1 b除以a取余数print(b ** a) # 25 b的a次方
7、内存分配和引用的问题,和C语言有些区别,在python语言中,id函数可以返回一个变量的地址,用以下的例子来说明一下python语言和C语言的内存分配问题
a = 2b = 5print(id(a)) #1584438512print(id(b)) #1584438560c = aprint(id(c)) #1584438512c = bprint(id(c)) #1584438560
a的地址是1584438512,b的地址是1584438560,当把a赋值给c的时候,发现c的地址和a的地址一样,说明,c和a本身就是一个东西,只是名字不一样罢了,也就是说c是a的引用。同理,当把b赋值给c的时候,c就是b的引用了,c的地址就和b的地址一样了。
下面讨论C语言(C++,Java)的情况
#include <stdio.h>using namespace std;int main(){ int a = 5,b = 2; printf("%d\n",&a); //2686748 printf("%d\n",&b); //2686744 int c = a; printf("%d\n",&c); //2686740 c = b; printf("%d\n",&c); return 0;}
这表明在C语言中,分别对a、b、c分配了空间,c并不是a或b的引用,而是真真正正存在占用内存的一个变量。
8、字符串的操作更简单了,类似于MATLAB中的操作,可以用中括号的形式,例子如下
str = "abcdefABCDEF"print(str[1:]) # bcdefABCDEF 从下标1开始到最后print(str[:5]) # abcde 从开头到下标为5的,但是不包括5print(str[2:6]) # cdef 从下标2开始,到下标6结束,不包括下标6,也就是说左闭右开print(str[2:-1]) # cdefABCDE 从下标2开始,到倒数第一个,但是不包括倒数第一个print(str[1:7:2]) # bdf 从下标为1开始,下标差2的取出来,不超过下标7print(str[9:-7:-1]) #DCBA 从下标为9开始,下标差-1的取出来,不超过倒数第七个print(str[::-1]) # FEDCBAfedcba 逆序
字符串也可以判断某个字符串或者某个字符在不在这个字符串中,用关键字in和not in,类似于java.lang.String#contain方法。python字符串也有像C语言中printf的格式化输出的功能,例子如下。
print ("我叫 %s 今年 %d 岁!" % ('小明', 10))
9、列表List和java.util.List完全一样,有顺序,有下标,可以增删改查;元组是不能修改的,只能查看;字典和java.util.Map完全一样,例子如下:
list = [1,"zhangsan",True,2.3]# 增加单个元素操作list.append("lisi")print(list) # [1, 'zhangsan', True, 2.3, 'lisi']# 把一个集合里面的东西都加进来temp = ["wangwu",23]list.extend(temp)print(list) # [1, 'zhangsan', True, 2.3, 'lisi', 'wangwu', 23]# 通过list.insert方法,注意下标还是从0开始list.insert(1,"first");print(list) # [1, 'first', 'zhangsan', True, 2.3, 'lisi', 'wangwu', 23]print("="*60)list = [1,"zhangsan",True,2.3]# 通过下标获取元素print(list[0]) # 1# 删除元素list.pop() # 删除最后一个,并返回print(list) # [1, 'zhangsan', True]# list.remove(obj) 是移除列表中某个值的第一个匹配项
对于字典,其实就是json格式,获取和修改操作和js一样,如
dict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}dict['Age'] = 8; # 更新 Agedict['School'] = "菜鸟教程" # 添加信息print ("dict['Age']: ", dict['Age'])print ("dict['School']: ", dict['School'])dict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}del dict['Name'] # 删除键 'Name'dict.clear() # 删除字典del dict # 删除字典print ("dict['Age']: ", dict['Age'])print ("dict['School']: ", dict['School']) #会报异常
- python基础(1) 数据类型和运算符
- python基础:语法,数据类型和运算符
- java基础语法-运算符和数据类型
- 【java基础】数据类型和运算符
- python运算符、数据类型
- Python基础(2)-基本数据类型以及运算符介绍
- python基础-变量、数据类型、input、格式化、运算符、流程控制
- python语言基础之基本数据类型及其运算(1)
- Python (3)python中的数据类型转换,运算和运算符,数据类型检测方法
- java基础 1 变量 数据类型 数据类型的转换 运算符
- 数据类型和运算符
- 数据类型和运算符
- 数据类型和运算符
- 数据类型和运算符
- 数据类型和运算符
- 数据类型和运算符
- 数据类型和运算符
- 数据类型和运算符
- 解决com.alibaba.fastjson.JSON返回数据自动把首字母改为小写问题
- JQuery的SimpleModal插件
- MiniDao的执行
- C# Random 随机数数值重复问题
- 安装Docker CE、安装最新版Docker
- python基础(1) 数据类型和运算符
- caffe和Torch训练时技巧1
- Qt 之 HTTP 请求下载(支持断点续传)
- jQuery选择器详解
- 携程在手,看清楚再走,捆绑销售太吓人了
- JVM 指令集总结
- Android 获取手机品牌、型号等信息
- HDU 5422 Rikka with Graph(规律)
- GIT教程 — 详解本地库的使用以及原理(一)