python核心基础纵览(上)

Number类型

整数与浮点数

## python2.7 
a = 123848488483993932002093939L        ## 要加L,py2.7有长整型
b = 23.03
c = 10 / 4      ## 2
d = 10 / 4.0    ## 2.5
e = 10 // 4     ## 2
f = 10 // 4.0   ## 2.0

## python3.5
a = 1238484884839939320020939393839303  ## 不需要加L,python3.x是属于单个整数类型,不区分长整型
b = 29.90
c = 10 / 4      ## 2.5
d = 10 / 4.0    ## 2.5
e = 10 // 4     ## 2
f = 10 // 4.0   ## 2.0

Boolean,只有两个值:True && False

a = False
b = True

十进制转16进制、8进制、2进制

num = 29  ## 10进制
## 转16进制
hex(num)   ## 0x1d

## 转8进制
oct(num)   ## 0o35

## 转2进制
bin(num)   ## 0b11101

16进制、8进制、2进制转十进制

## 16进制转10进制
str_hex = r'0x1d'
int(str_hex,base = 16)

## 8进制转10进制
str_oct = r'0o35'
int(str_oct,base = 8)

## 2进制转10进制
str_bin = r'0b11101'
int(str_bin,base = 2)

Sequence类型簇

序列类型簇

  • 字符串String
  • 元组Tuple
  • 列表List

基本操作符

  • A[index]:获取序列第index个元素,index取值从0开始
  • A[index1:index2]:切片操作,获取序列中index1到index2-1的子序列
  • A in B:判断序列B是否有A,如果有返回True,否则返回False
  • A not in B:判断序列B是否没有A,如果没有返回True,否则返回False
  • A + B :将序列A和序列B合并并组成一个新的序列返回
  • A * number :将序列A重复拼接number次并将拼接后新组成的序列返回
  • A == B:序列A与序列B的值和长度都相等

序列比较cmp原理(A > B or A < B)

  • 如果比较的元素是同类型的,则比较其值,返回结果。
  • 如果两个元素不是同一种类型,则检查它们是否是数字。
    • 如果是数字,执行必要的数字强制类型转换,然后比较。
    • 如果有一方的元素是数字,则另一方的元素"大"(数字是"最小的")
    • 否则,通过类型名字的字母顺序进行比较。
  • 如果有一个列表首先到达末尾,则另一个长一点的列表"大"。
  • 如果我们用尽了两个列表的元素而且所 有元素都是相等的,那么结果就是个平局,就是说返回一个 0

String类型

String是由零个或者多个字符组成的有限序列,通常以串的整体作为操作对象,字符串以引号包含标识

## 字符串定义
a = 'single'                ## 单引号表示
b = "double"                ## 双引号表示
c = """...spam..."""        ## 三引号表示
d = '''...spam...'''        ## 三引号表示

e = "s\tp\na\0m"            ## 转义序列
f = r"C:\new\test.spm"      ## raw 字符串,即用r禁用转义字符
bs = b'sp\x01am'            ## 字节字符串
us = u"中文"                ## Unicode字符串

如果字符串包含中文,应当声明为unicode字符串

字符串格式化表达式

## 格式化表达式:"...%s..." % (values) Or "...%(keyname)s..." % {keyname:keyvalue}
>>> "this is my %s" % ('name')
'this is my name'

>>> "this is my %(name)s" % {'name':'xiao'}
'this is my xiao'

## 格式化方法调用:"...{}...".format(values) Or "...{keyname1}...".format(keyname1=value1)
>>> "my name is {}".format('xiaokunliu')
'my name is xiaokunliu'

>>> "this is my {firstname},and {lastname}".format(firstname="xiaokun",lastname="liu")
'this is my xiaokun,and liu'

字符串格式化结构:%[(keyname)][flags][width][.precision]typecode

## keyname:字典对应索引的keyname
>>> '%(name)s' % {'name':'xiaokun'}
'xiaokun'

##  flags:格式化符号(-、+、space空格键<sp>、#、0、m.n)
##  -:左对齐;
##  +:对正数输出正值符号;
##  m.n:m是显示最小总宽度,n是小数点后的位数;
##  #:在8进制数前面显示0,16进制前面显示"0x"或者"0X"
##   0:数字大小不足m.n的要求时用0补位;
##   <sp>:数字大小不足m.n的要求时用空格补位;
x = 1.23456789
>>> "%-6.2f,%+3.4f,%#2.3f,%06.9f,% 3.9f" % (x,x,x,x,x)
'1.23  ,+1.2346,1.235,1.234567890, 1.234567890'

## width:指定显示字符串的宽度
>>> '%−6.2f' % x
'1.23  '
'
## .precision:整数格式化为字符串的时候需要保留的小数位数
>>> '%.3f' % x
'1.235'

## typecode:格式化符号
%s      String (or any object’sstr(X)string) 
%r      Same ass, but usesrepr, not str 
%c      Character (int or str)
%d      Decimal (base-10 integer)
%i      Integer
%u      Same asd(obsolete: no longer unsigned) 
%o      Octal integer (base 8)
%x      Hex integer (base 16)
%X      Same asx, but with uppercase letters
%e      Floating point with exponent, lowercase 
%E      Same ase, but uses uppercase letters
%f      Floating-point decimal
%F      Same asf, but uses uppercase letters
%g      Floating-point e or f
%G      Floating-point E or F
%%      Literal%(coded as%%)

Tuple类型

定义

  • 用圆括号表示,在不同元素之间以逗号隔开
  • Tuple大小以及其中的元素在初始化后不能修改
  • Tuple比可修改的List操作速度快
  • 用途;可以用于定义一组常量集并用于不断读取

简单示例

## 定义
>>> tuple1 = ('you',283,93,'English',4,5.6)

## 读取
>>> tuple1[3]

## 截取子元组
>>> subTuple = tuple1[3:]

## 可以对元组变量重新赋值,注意是元组变量不是元组对象
>>> tuple1 = tuple1 + (2,3,'playing')

## 获取长度
>>> len(tuple1)

## 不能修改
>>> tuple1[2] = "update"    ### 这里将发生错误
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment

## 元素可重复
>>> tuple1 = tuple1 * 2

List类型

定义

  • 使用中括号表示,即[],不同元素之间以逗号隔开
  • List大小和其中的元素在初始化后可以被再次修改
  • 用途:对于定义的一组数据集,要求能够进行增删改查操作

简单示例

## 定义
>>> color_list = ['green','red','pink','blue','black','white']

## 读取元素
>>> color_list[2]

## 截取子列表
>>> color_list[3:]

## 修改指定序列的内容
>>> color_list[2] = "update_pink"

## 获取长度
>>> len(color_list)

## 元素遍历
>>> for color in color_list:
...     print color
...

## 排序,排序后本身的color_list不变
>>> sorted_color_list = sorted(color_list)

## 求和
>>> num_list = [3.4,5,6,3,5.7,12,27,32]
>>> sum(num_list),'%i' % sum(num_list) '%.2f' % sum(num_list)

## 以指定的方式排序 list.sort(fn = None,key = None,reverse = False)
>>> num_list = [29,39,4,23,42,13,19,21]
>>> num_list.sort()     ## 改变list对象本身
>>> sorted(num_list)    ## 返回一个排序后的list对象,不改变num_list

## 按照key值排序
>>> key_list = [('name':3),('age':10),('num':23),('key':24)]
>>> key_list.sort(key = lambda x:x[1])

## 倒序排序
>>> key_list.sort(reverse = True)

## 正向排序
>>> key_list.sort(reverse = False)

Set类型

类型定义

  • 通过set定义普通集合
  • 通过frozenset定义不可变集合

简单示例

## 初始化
set_list = [2,39,9,3,4,5,28,34]
>>> s1 = set(set_list)
{2, 3, 4, 5, 34, 39, 9, 28}

>>> s2 = frozenset(set_list)
frozenset({2, 3, 4, 5, 34, 39, 9, 28})

## 判断包含关系
>>> print 9 in s1

## 判断子集关系
>>> print s1 >= s2

## 差运算
>>> print s1 - s2

## 交运算
>>> print s1 & s2

## 执行并运算并赋值给s1
>>> print s1 |= s2

## 对称差运算
>>> print s1 ^ s2 ## 获取s1不在s2的元素以及s2不在s1的元素

## 集合遍历
>>> for ele in s1:
...     print(ele)

Dictionary类型

类型定义

  • 即字典类型,代表一个键值存储库,类似于映射表

简单示例

## 字典定义
>>> dc = {"name":"xiaokun","age":4,"title":"english name"}

## 读取元素
>>> print dc['name']

## 直接通过下标增加字典字段
>>> dc['new_name'] = 'new_value'

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

推荐阅读更多精彩内容

  • http://python.jobbole.com/85231/ 关于专业技能写完项目接着写写一名3年工作经验的J...
    燕京博士阅读 7,475评论 1 118
  • importUIKit classViewController:UITabBarController{ enumD...
    明哥_Young阅读 3,669评论 1 10
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,087评论 18 139
  • 对不起,11.11不是光棍的日子,我们一起投反对票,重新定光棍日子吧……
    有趣文叔阅读 94评论 0 0
  • 蝉鸣早,晓风袅袅星河杳 星河杳,牵牛难渡,玉环香渺 讷言郁色双双小,而今出落芙蓉貌 芙蓉貌,骄杨不柳,各祈安好
    吉莉安阅读 391评论 0 1