python-基础

Python 是一款易于学习且功能强大的编程语言。 它具有高效率的数据结 构,能够简单又有效地实现面向对象编程。Python 简洁的语法与动态输入 之特性,加之其解释性语言的本质,使得它成为一种在多种领域与绝大多 数平台都能进行脚本编写与应用快速开发工作的理想语言。
Python可以做什么?
很多人都问过我这个问题,我的回答是他什么都能做,C可以做的他可以,JAVA可以做的他也可以,桌面软件、网站开发、爬虫、人工智能、大数据……
Python是一门解释型语言不同于C、java等需要进行编译打包之后才能运行,你只需要在你需要运行的电脑上安装Python的解释器就可以运行你的程序
解释型语言:程序不需要编译,程序在运行时才翻译成机器语言,每执 行一次都要翻译一次。因此效率比较低。比如Basic语言,专门有一个解释器能够直接执行Basic程 序,每个语句都是执行的时候才翻译。(在运行程序的时候才翻译,专门有一个解释器去进行翻译,每个语句都是执行的时候才翻译。可以理解为在运行时解释器解释一行代码电脑执行一次代码,因为这个特性你前面的代码中就不能调用后面的函数或者变量,因为执行到这里解释器根本不知道你调用的是什么,所以这一点要注意
编译型语言: 程序在执行之前需要一个专门的编译过程,把程序编译成 为机器语言的文件,运行时不需要重新翻译,直接使用编译的结果就行了。程序执行效率高,依赖编译器,跨平台性差些。如C、C++、Delphi等
一、数据类型:数据类型指的就是变量的值的类型,也就是我们可以为变量赋哪些值
Python作为一门动态语言不同于java,他不需要在定义变量之前声明变量的类型,python会智能的根据变量的内容来定义变量的类型
Python中有六种标准的数据类型,分别为:
Number(数字)
String(字符串)
Tuple(元组)
List(列表)
Set(集合)
Dictionary(字典)
Python中的数字类型有:int(整数)、float(浮点数)、bool(布尔型)、complex (复数)
字符串:由数字、字母、下划线等等组成的一串字符,
在定义字符串的时候如果内容是很长的一串内容并且有换行可以通过"""三个引号来声明,例如:

a = """
a
bbb
"""
print(a)
a
bbb

(python冷知识:如果字符串中包含单引号可以用双引号包起来,如果字符串中包含双引号则可以用单引号包起来,三引号不仅用来定义长字符串还可以给定义好的方法加注释)
字符的转义:
' 表示'
\”表示”
\t 表示制表符
\n 表示换行符
\ 表示反斜杠
r 原始字符串
占位符:%s 表示此位置是字符串 %d 表示此位置是整数 %f 表示此位置是浮点数,例如:

a = '---------'
 b = 1111
 c = 2.222
 print('%s %d, %f' %(a,b,c))
--------- 1111, 2.222000

字符串的格式化:让字符串按指定的格式输出
%[(name)][flags][width].[precision]typecode
(name) 可选,用于选择指定的key
flags 可选,可供选择的值有:
右对齐;正数前加正好,负数前加负号;
左对齐;正数前无符号,负数前加负号;
空格 右对齐;正数前加空格,负数前加负号;
0 右对齐;正数前无符号,负数前加负号;用0填充空白处
width 可选,占有宽度
.precision 可选,小数点后保留的位数
typecode 必选
s,获取传入对象的str方法的返回值,并将其格式化到指定位置
r,获取传入对象的repr方法的返回值,并将其格式化到指定位置
c,整数:将数字转换成其unicode对应的值,10进制范围为 0 <= i <= 1114111(py27则只支持0-255);字符:将字符添加到指定位置
o,将整数转换成 八 进制表示,并将其格式化到指定位置
x,将整数转换成十六进制表示,并将其格式化到指定位置
d,将整数、浮点数转换成 十 进制表示,并将其格式化到指定位置
e,将整数、浮点数转换成科学计数法,并将其格式化到指定位置(小写e)
E,将整数、浮点数转换成科学计数法,并将其格式化到指定位置(大写E)
f, 将整数、浮点数转换成浮点数表示,并将其格式化到指定位置(默认保留小数点后6位)
F,同上
g,自动调整将整数、浮点数转换成 浮点型或科学计数法表示(超过6位数用科学计数法),并将其格式化到指定位置(如果是科学计数则是e;)
G,自动调整将整数、浮点数转换成 浮点型或科学计数法表示(超过6位数用科学计数法),并将其格式化到指定位置(如果是科学计数则是E;)
%,当字符串中存在格式化标志时,需要用 %%表示一个百分号
注:Python中百分号格式化是不存在自动将整数转换成二进制表示的方式
(name) 可选,用于选择指定的key
字符串的其他操作:
len()方法可以返回字符串的长度,例如:

 a = '123456789'
print(len(a))
9

求最大值和最小值:max()、min(),例如:

a = 10
b = 20
c = 30
 print(max(a,b,c))
30

字符串分割:调用变量的sqlit()方法,例如:

a = 'a a a'        #每个a后面我都加了个空格
print(a.split())
['a', 'a', 'a']

去空格:调用字符串的strip()方法,strip()两边去空格 lstrip()左边去空格 rstrip()右边去空 格例如:

a = '               a           '
print(a.strip())
a
print(a)
               a

字符串的大小写格式切换: upper()全部大写、lower全部小写、capitalize() 首字母大写、isupper() islower()、判断是不是大写或者小写,例如:

 a = 'a'
print (a.islower())
True

类型强转:Python中可以通过类型关键字后面加()进行类型强转,但是并不建议新手在代码中这样操作,例如:

a = 1
print (type(a))      #type()方法可以打印出变量的类型
<class 'int'>
print(type(str(a)))        #此时通过srt()将a的类型转换为了字符串
<class 'str'>

二、运算符:运算符用于执行程序代码运算,会针对一个以上操作数项目来进行运算。就是代码中运行加减乘除运算的符号。
赋值:a = 1
加法:a = 1 + 1
取余:a = 4 % 3
a += 1:相当于a = a + 1,其他运算符同理
比较运算:<(小于)、>(大于)<=(小于等于)>=(大于等于)、==(等价于,不同于=)、is 、is not
例如:

 a = b = [1,2,3]
c = [1,2,3]
a == c
True
a is c
False
a is b
True

== 比较的是两个变量的值,而is比较的是两个变量在内存中的ID
逻辑运算符:and,满足符号两侧的条件返回true否则false,例如:

a = b = [1,2,3]
c = [1,2,3]
a is b and a is c
 false

or:满足符号任意一边的条件返回true,若两边同时不满足返回false,例如:

a = b = [1,2,3]
c = [1,2,3]
a is b or a is c
 true
a is c or b is c
false

条件运算:语句1 if 条件表达式 语句2 else 语句3,例如:

a = 1
if a >2:
          print ('a>2')
       else:
          print('a<2')
a <2

三、条件控制语句:当满足条件表达式时执行代码块1,不满足时执行代码块2,如果有多个条件表达式可以用elif继续判断,最后一个关键字必须是else
if 条件表达式:

        代码块1
elif:
        代码块2
else:
        代码块3

while循环:当满足条件表达式时执行代码块

while 条件表达式:
        代码块

while不同于if,一定要注意条件,如果条件判断结果总是为True的话就会变成死循环,可以在表达式之前定义一个变量,代码块中对变量进行+=运算来控制,或者使用continue或者break关键字来跳过或者跳出循环。
四、列表(List):Python的基本数据类型之一,以[]包裹,元素以","分隔的有顺序的组合,以下标为索引来标识元素,从0开始。
定义:list = [元素1,元素2,……],空列表有两种定义方法,list = []或者my_list = list()
元素的添加:list.append(元素),向列表的末尾添加元素,这个元素可以是任意类型,包括不限于列表、字符串、字典等等

list1 = [1,2,3]
list1.append([4,5,6])
print list1
[1, 2, 3, [4, 5, 6]]        #注意第2个元素是列表,而不是数字,此时列表中有4个元素

list1.extend(list2),将list2中的元素逐一添加到list1中,不同于append

list1 = [1,2,3]
list1.extend([4,5,6])
print (list1)
[1, 2, 3, 4, 5, 6]        #此时列表中有6个元素

list.insert(index,元素),向下标为index的元素前添加元素,此方法要注意下标不要越界

list = [1,2,3]
list.insert(1,4)
print (list)
[1, 4, 2, 3]

修改列表中的元素:直接用list[下标]来给元素赋值即可

list = [1,2,3]
print (list)
[1, 2, 3]
list[0] = 4
print (list)
[4, 2, 3]

元素的查找:用in 或者not in 判断某个元素是否在列表内,返回一个布尔类型的数值

a = [1,2,3]
print (4 in a)
False

删除元素:del list[下标],删除指定下标的元素

list = [1,2,3]
del list[1]
print (list)
[1, 3]

list.pop()方法,默认删除列表中最后一个元素,可以将指定的下标传给方法来删除,pop()方法会返回被删掉的元素

list = [1,2,3]
list.pop()
3
print (list)
[1, 2]

list.remove(元素)删除某个元素,如果传给remove()方法的元素not in list则会报错

list = [1,2,3]
list.remove(2)
print (list)
[1, 3]

list.clear()方法,清空列表

list = [1,2,3]
list.clear()
print (list)
[]

len(list)返回列表的长度就是列表中元素的个数

list = [1,2,3]
len(list)
3

list.count(元素)统计list中某个元素的个数

list = [1,2,2,3]
list.count(2)
2

列表中元素的循环

for i in list:
        print (i)
1
2
3

列表的排序:list.sort(reverse = False),当reverse为false的时候升序可省略,当reverse为true的时候升序排列不可省略,list.reverse()方法可实现列表的反转

list = [2,1,6,4,8,5]
list.sort()
print (list)
[1, 2, 4, 5, 6, 8]
list.sort(reverse = True)
print (list)
[8, 6, 5, 4, 2, 1]
list.reverse()
print(list)
[1, 2, 4, 5, 6, 8]

列表的高级操作-切片:list[起始下标:结束下标:步长],起始下标不写默认为0,结束下标不写默认取到列表末尾,步长不写默认为0,起始位置元素可以取到结束位置取不到,-1表示列表最后一个元素-2,-3以此类推,冷知识,起始就结束不写步长-1可实现list.reverse()的效果,这些操作对字符串类型的变量同样适用

list = [2,1,6,4,8,5]
list[1:4]
[1, 6, 4]
list = [2,1,6,4,8,5,5,7,9,4,]
list[0:6:2]
[2, 6, 8]
list = [2,1,6,4,8,5]
list[::-1]
[5, 8, 4, 6, 1, 2]

五、元组(tuple):被称为只读序列,一旦被定义数据只可以被查询,不能被修改,用()包裹,元素以","隔开,对于一些不想被修改的数据可以保存在元组中,大部分用法与列表用法相同,只有一个元素的元组要在这个元素后面加','例如:

tuple = (1,2,3)
print (type(tuple))
<class 'tuple'>
tuple[1]
2
tuple[1] = 1        #如果对列表中元素赋值的话程序会直接抛出异常
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment

六、字典(dict):字典是一种可变的容器模型,并且可以存储任意类型的对象,类似于json,每个元素以键值对(key:value)的形式存在并以","分隔,以{}包裹所有元素,以dict[key]的形式取出value

dict = {'a':'1','b':'2'}
print (type(dict))
<class 'dict'>
dict['a']
'1'

字典的常用方法:字典的value更新方法与列表相同,对dict[key]赋值即可,如果key不存在就是新增元素,dict.clear()为清空字段,del dict[key]为删除字典中的某个元素,如果不传key则为删掉字典,不同于clear的是del会把字典直接从内存中删除,被clear之后的字典为 dict = {},len(dict)可以返回字典中key的总数,也就是元素的个数,另外字典还有以下12个内置方法:


字典内置方法.png

七、集合(set):一直无序的不可重复的数据类型,看起来像字典用起来像元组,用一组{}来包裹没个元素以','分隔,集合内的元素不允许重复也不能想列表那样以下标取值,因为他是没有顺序的,可以用来做去重处理

set = {1,2,3,4}
print(type (set))
<class 'set'>
list = [1,1,2,2,3,3,]        #利用集合给列表去重
print (set(list))
{1, 2, 3}

set的大多数用法与list相似,例如,set.add(元素)向set中添加一个新元素,不同的是并不需要下标,因为他是无序的,set.update(参数)可以将参数中的元素逐一添加进set中,set.pop()方法随机删除set中一个元素,set.remove(元素)删除set中指定的元素,set.clear()方法清空set
set的运算:
取交集(&):理解为取两个集合重叠的部分

a = {1,2,3,4,5}
b = {1,2,3}
print (a & b)
{1, 2, 3}

取并集(|):理解为取两个集合共有+特有的部分

a = {1,2,3,4,5}
b = {4,5,6,7,8}
print (a | b)
{1, 2, 3, 4, 5, 6, 7, 8}

取差集(-):减法运算,不多说,看代码就懂

a = {1,2,3,4}
b = {3,4,5,6}
print (a - b)
{1, 2,}

取亦或集(^):理解为取两个集合特有的部分

a = {1,2,3,4}
b = {3,4,5,6}
print(a ^ b)
{1, 2, 5, 6}

检查a是不是b的子集:a <= b
检查a是不是b的真子集:a < b

------python数据类型等基础知识介绍完毕,下一篇更新函数、面向对象------

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

推荐阅读更多精彩内容

  • 基于《Python语言程序设计基础(第2版)》 第一部分 初识Python语言 第1章 程序设计基本方法 1.1 ...
    柄志阅读 27,363评论 4 44
  • Number(数字) Python的数字由字面值生成或者由算术操作符和内建的算术函数作为结果返回。数字提供了标量贮...
    常大鹏阅读 3,064评论 0 7
  • 本教程基于Python 3,参考 A Byte of Python v1.92(for Python 3.0) 以...
    yuhuan121阅读 3,055评论 1 6
  • 记得《初恋那件小事》放映之后没多久,自己一个人便缩在寝室里看。随着故事的情节的发展,自己的心绪也起起伏伏。如果能像...
    箱笛阅读 313评论 0 0
  • 毕志飞导演,遵守约定,我在欣赏了您的大作后赶出了这篇影评,从电影开头的绿色比基尼,到派对,尬舞,追车时的表情,我觉...
    怀侠阅读 330评论 0 0