Java工程师学快速Python(1)----- 数据类型和运算符

由于本人已经java开发,所以这是一个快速学习python的系列文章,只会突显一些java与python不同的地方

---------------------

Python允许你同时为多个变量赋值。例如:

a = b = c = 1

a, b, c = 1, 2, "john"

标准数据类型

Python3 中有六个标准的数据类型:

  • Number(数字) 
  • String(字符串)
  • List(列表)
  • Tuple(元组)
  • Set(集合)
  • Dictionary(字典)

Python3 的六个标准数据类型中:

  • 不可变数据(3 个):Number(数字)、String(字符串)、Tuple(元组);
  • 可变数据(3 个):List(列表)、Dictionary(字典)、Set(集合)。

1.Numbers(数字) 

int  long float . 这三个与java类似

complex 复数,就是数学的复数 complex(a,b) 或者  a + bj   a是虚部,b是实部

2.String(字符串)

a ="12321" a[2]='1' print(a)

这种代码就会报错

python三引号允许一个字符串跨多行,字符串中可以包含换行符、制表符以及其他特殊字符。实例如下

para_str = """这是一个多行字符串的实例
多行字符串可以使用制表符
TAB ( \t )。
也可以使用换行符 [ \n ]。
"""
print (para_str)

输出的结果是:
这是一个多行字符串的实例
多行字符串可以使用制表符
TAB ( \t )。
也可以使用换行符 [ \n ]。

str自带函数,这里之列举java中没有的

maketrans() 

intab = "aeiou"
outtab = "12345"
trantab = str.maketrans(intab, outtab)

str = "this is string example....wow!!!"
print (str.translate(trantab))

结果是把str中的aeiou替换成12345,注意intab和outtab要一样长

  

 

3.List (列表) java中的List 

[1,3,3]

列表可以当栈用,也可以当队列用,列表中有一个比较牛B的方法,叫做推导式

vector= [1,2,3,4]
vector2 =[(4*x,3*x) for x in range(len(vector))]

等价于下面
list =[]
for x in vector:
       list.append((4*x,3*x))
print(list)


vec =[1,2,3,4,5]
vec2=[3*x for x in vec if x > 3]
等价于
list=[]
for x in vec:
       if x>3:
              list.append(3*x)

4.tuple元组  java中的flink中的Tuple

(1,2,3,)

元组的内置函数只有count 长度和index 类似java中的String的index

 

5.set集合 就是java中的Set

{1,2,3}

空集合不能用{}表示,要用set()

s.update( x )也可以更新,比add功能更强
s.discard( x )可以用来删除元素,代替s.remove( x )

6.字典  java中的Map

dict= {"1":"2","2":"3"} 

put/update 操作 dict['123'] =123

delete操作 del dict['Name']

字典的遍历:

//返回key和索引
knights = {'gallahad': 'the pure', 'robin': 'the brave'}
for k,v in enumerate(knights):
       print(k,v)

//返回kv键值对
knights = {'gallahad': 'the pure', 'robin': 'the brave'}
for k,v in knights.items():
       print(k,v)


//组合两个列表
names = ['zhangsan','wangwu', 'zhaoliu']
ages = [12, 23, 54]
list=[]
for q,a in zip(names,ages):
       list.append({'name':q,'age':a})
print(list)

----------------------------------

isinstance 和 type  用于判断类型

  • type()不会认为子类是一种父类类型。
  • isinstance()会认为子类是一种父类类型。
  • class A:
        pass
    class B(A):
        pass
    print(isinstance(B(),A))     ------true
    print(type(B())==A)          ------false

------------------------

运算符

1.Python逻辑运算符
||运算符 ||逻辑表达式||java中含义||
||and   ||x and y  || &&      ||
|| or   ||x or y   || ||      ||
|| not  ||not x    ||  !      ||

2.Python成员运算符
||运算符 ||逻辑表达式||
||in    ||是否在集合中
||not in|| 不在集合中||
3.Python身份运算符
||运算符 ||含义                                     ||java中含义||
||is    ||is 是判断两个标识符是不是引用自一个对象      || ==     ||
||not is||s not 是判断两个标识符是不是引用自不同对象   || !==      ||
is 和= 区别相当于java中 == 和equals区别

-----------------------------------

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值