[python自学笔记]数据类型和运算符

本文介绍Python3的基础知识,包括环境配置、数据类型、内存管理、字符串操作及列表、元组、字典的基本使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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 = 1
b = 1.01
c = True
d = 2 + 5j
e = "abc"
f = ["abc","aaa"]
g = ("abc","aaa")
h = {"小明":20,1:3,"小李":10}
i = {"123","12","123","1"}
print(type(a)) # int
print(type(b)) # float
print(type(c)) # bool
print(type(d)) # complex
print(type(e)) # str
print(type(f)) # list
print(type(g)) # tuple
print(type(h)) # dict
print(type(i)) # set

5、对于python文件编码的问题,如果需要指定python文件编码,需要在文件的第一行,比如指定文件为UTF-8编码代码如下,这是一行特殊的注释,让python解释器按照UTF-8编码。

# coding = UTF-8

6、运算符的问题,要说明的是乘法运算符可以操作字符串,比如以下字符串是将abc这个字符重复10次。

str = "abc" * 10
print(str) # 输出 abcabcabcabcabcabcabcabcabcabc

而且没有++,–运算符。此外对于除法运算符,就是单纯的做除操作,并不是和C语言一样,整数除以整数还等于整数了,在python中,结果是多少就是多少,求商用求商运算符,求余数用余数运算符,代码如下

a = 2
b = 5
print(b / a) # 2.5  b除以a
print(b // a) # 2 b除以a取商
print(b % a) # 1 b除以a取余数
print(b ** a) # 25 b的a次方

7、内存分配和引用的问题,和C语言有些区别,在python语言中,id函数可以返回一个变量的地址,用以下的例子来说明一下python语言和C语言的内存分配问题

a = 2
b = 5
print(id(a)) #1584438512
print(id(b)) #1584438560

c = a
print(id(c)) #1584438512
c = b
print(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的,但是不包括5
print(str[2:6]) # cdef 从下标2开始,到下标6结束,不包括下标6,也就是说左闭右开
print(str[2:-1]) # cdefABCDE 从下标2开始,到倒数第一个,但是不包括倒数第一个
print(str[1:7:2]) # bdf 从下标为1开始,下标差2的取出来,不超过下标7
print(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;               # 更新 Age
dict['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']) #会报异常
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值