Python3 入门(1)

数据类型

Python有六个标准的数据类型:

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

分类

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

Numbers包含int,double,complex

  • Python可以同时为多个变量赋值,如a, b = 1, 2。
  • 一个变量可以通过赋值指向不同类型的对象。
  • 数值的除法包含两个运算符:/返回一个浮点数,// 返回一个整数(向下取整)。
  • 在混合计算时,Python会把整型转换成为浮点数。
  • **为乘方。

List为最常用的数据结构,有序的对象集合,用[]标识:

list = ['1', '2', '3', '4', '5']
list1 = ['6', '7']

print(list)      # ['1', '2', '3', '4', '5']
print(list[0])   # 1
print(list[0:3]) # ['1', '2', '3']
print(list[3:])  # ['4', '5']
print(list * 2)  # ['1', '2', '3', '4', '5', '1', '2', '3', '4', '5']
print(list + list1)  # ['1', '2', '3', '4', '5', '6', '7']

Tuple为python元组,类似于list,但是用()标识,内部用逗号分隔,不能二次赋值,只读,相当于只读列表。

tuple = ('1', '2', '3')
list = ['1', '2', '3']

tuple[1] = '0' # error
list[1] = '0'  

Set为python集合,无重复元素。用{}标识。可以使用大括号 { }或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为{ } 是用来创建一个空字典。

set0 = {1, 3}
set1 = set()
set2 = {}

print(set0)  ## {1, 3}
print(set1)  ## set()
print(set2)  ## {}
print(type(set1))  ## <class 'set'>
print(type(set2))  ## <class 'dict'>

Dictionary为python字典,无序的对象集合。key-value模式,通过key值来存取,用{}标识。

dict = {'1': '一', '2': '二'}
dict['3'] = '三'

print(dict.get('1'))   # 一
print(dict)   # {'1': '一', '2': '二', '3': '三'}
print(dict.keys()) # dict_keys(['1', '2', '3'])
print(list(dict.keys()))  # ['1', '2', '3']
print(dict.values())  #  dict_values(['一', '二', '三'])
print(list(dict.values()))  # ['一', '二', '三']

dict.keys()返回了一个字典的所有key值,但这个结构并不是list,需要用list(dict.keys())转换,才可以获取到list类型。

python数据类型转换:

print(int('1'))  ## int转换类型
print(float('1.1')) ## float类型转换
print(str(123))  ## str类型强制转换

class User:
    def __init__(self, index, name):
        self.index = index
        self.name = name
    def __str__(self):
        return str(self.index) + " - " + self.name
      
user = User(110, "leekari")   ## 创建user对象
print(user)    ## 110 - leekari
## repr(obj) repr() 函数将obj转化为供解释器读取的形式
print(repr(user))  ## <__main__.User object at 0x10ca67358>

num = 1
string = 'num == 1'
## 用来执行一个字符串表达式,并返回表达式的值
print(eval(string))  ## 返回True

list0 = [1, 2, 3]
set0 = {1, 2, 3}
dict0 = {1: 'a', 2: 'b', 3: 'c'}
tuple0 = (1, 2, 3)

tuplex = tuple(list0)  ## (1, 2, 3)
tuplex = tuple(set0)     ## (1, 2, 3)
## 字典转换为元组时,将dict.keys()的list转换为元组
tuplex = tuple(dict0)  ## (1, 2, 3)

listx = list(set0)  ## [1, 2, 3]
## 只保留dict.keys()的list
listx = list(dict0)  ## [1, 2, 3]
listx = list(tuple0)  ## [1, 2, 3]

list1 = [1, 1, 1, 2]
## set去重
set(list1) ## {1, 2}

chr(97)  ## a
ord('a') ## 97

hex(15) ## 0xf
oct(9) ## 0o11

tupleList = [('1', '2')]  
dict(tupleList)         ##  类型转换为字典时,需要的参数为元组数组,即tuple list,并且tuple中包含的参数数量为2

##error 
tuple = [('1', '2', '3')]
print(dict(tuple))  ## ValueError: dictionary update sequence element #0 has length 3; 2 is required

支持给多个变量赋值

a = b = c = 1
a, b, c = 1, "b", 'c'

注释类型

单行注释:# ... #开头

多行注释:'''...''' 或者"""...""" 三个单引号或者三个双引号

运算符

:= 海象运算符,可在表达式内部为变量赋值。Python3.8 版本新增运算符

位运算符:

  • &按位与运算,1&1 => 1,1&0 => 0,0&1 => 0, 0&0 => 0
  • |按位或运算,1|1 = >1,1|0 => 1,0|1 => 1,0|0 => 0
  • ^按位异或运算,1^1 => 0,0^1 = >1,1^0 => 1,0^0 => 0
  • ~ 按位取反运算,~1 => 0,~0 => 1
  • <<左移动运算,向左移动,高位丢弃,低位补0
  • >>右移动运算,向右移动
## 0 => 00000 , 15 => 01111
x, y = 0, 15

## 00000 & 01111 => 0000
print(x & y)  ## 0
## 00000 | 01111 => 01111
print(x | y)  ## 15
## 00000 ^ 01111 => 01111
print(x ^ y)  ## 15
## ~ 01111 => 10000 ???
print(~ y)  ## -16
## 01111 << 1 => 11110
print(y << 1) ##30
## 01111 >> 1 => 00111
print(y >> 1) ## 7

逻辑运算符:

  • and A and B, A = true, 则返回B, A = false, 则返回A
  • or A or B, A = true,则返回A,A=false,则返回B
  • not not A, A=true,则返回false,A=false,则返回true
a, b, c = 1, 2, 0

print(a and b) ## 2
print(c and b) ## 0
print(a or b)  ## 1
print(c or b) ## 2
print(not a) ## False
print(not c) ## True

成员运算符:

可以用于str、list、tuple、set、dict(只计算dict.keys())

  • in 在指定序列中包含,返回True,否则False
  • not in 在指定序列中不包含,返回True,否则返回False
list1 = [1, 2, 3, 4, 5]
a, b = 1, 10
str1 = "asdfghj"

print(a in list1)  ## True
print(b in list1)  ## False
print(a not in list1)  ## False
print("a" in str1)  ## True

tuple1 = (1, 3, 5)
set1 = {1, 3, 5}
dict1 = {1: 'a', 2: 'b'}

print(1 in tuple1) ## True
print(1 in set1)  ## True
print(1 in dict1)  ## True
print('a' in dict1)  ##False

身份运算符:

  • is A is B,引用相同的对象但会True,否则返回False
  • is not
class User:
    def __init__(self, index, name):
        self.index = index
        self.name = name
    def __str__(self):
        return str(self.index) + " - " + self.name

user1 = User(1, "lee")
user2 = User(2, "kari")
user3 = user1

print(user1 is user2)  ## False
print(user1 is user3)  ## True
print(user1 is not user2)  ##True

a, b = 1, 1

print(a is b)  ##True
## id(obj) 获得对象obj的内存地址
print(id(a) is id(b)) ##False

Tips:

s 与 == 区别:is 用于判断两个变量引用对象是否为同一个, == 用于判断引用变量的值是否相等。

运算符优先级:指数运算符优先级最高,其他普通运算符及位运算符与其余语言相同,身份运算符(is,is not),成员运算符(in, not in),逻辑运算符(not,and,or)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,732评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,496评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,264评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,807评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,806评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,675评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,029评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,683评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,704评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,666评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,773评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,413评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,016评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,978评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,204评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,083评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,503评论 2 343