Python基本知识总结

学习理解一个新的语言,除了其语法、书写规范需要了解之外,也可以从其对象、列表数组、map、方法、类等角度先去了解其基本元素的写法,然后从简入繁,慢慢的不断练习、不断已解决问题的思路深入了解。在此,总结归纳一下Python这些基本的用法。

重点说明一下

  • 作用域的控制

python用缩进的方法替代了其他很多编程语言中的{}(控制代码作用域)。你也可以选择1/2/3...个空格或者按一下tab键,但必须整个文件中都统一起来。千万不可以tab和空格混用,不然就会出现各种莫名其妙的错误。所以建议都直接用4个空格。很多IDE会自动格式化空格。

  • 语句结束

不像java一样,每一句后面用‘;’来表示此条语句结束,python中每一行默认是一条语句。

a = True
if a:
    print('a的逻辑为真')
    print('我可以在这里做一些逻辑为真的时候的操作')
else:
    print('a的逻辑为假')

基本类型

变量对象

写代码的时候,我们肯定要用到一些基本对象变量比如整数、带小数点的数、字符串(比如汉字、英文字母等)等,和其他语言一样(如java),Python也会有一些基本的类型:

a = 1  # 定义整数
b = 1.1  # 定义浮点型数值
c = True  # 定义boolean类型
d = False  # 定义boolean类型
e = 'hello world'  # 定义字符串
f = "hello world"  # 定义字符串

Python和java不一样,在定义的时候不需要声明对象的类型,解释器会根据值自动判别对象的类型,同时一个变量名字也可以改变不同的类型,如下:

a = 1  # 定义整数
a = 1.1  # 定义浮点型数值
a = True  # 定义boolean类型
a = False  # 定义boolean类型
a = 'hello world'  # 定义字符串
a = "hello world"  # 定义字符串

a最后的值为hello world

变量的命名(上面的a、b、c、d等)是需要有一定规范的:

  1. 第一个字符必须是字母或者下划线“_”
  2. 剩下的部分可以是字母、下划线“_”或数字(0-9)
  3. 变量名称是对大小写敏感的,a和A不是同一个变量。

数组(list)

除了一个个单独的变量之外,有的时候会用到一堆变量,比如保存1到100的所有整数、通话记录等,这个时候就用到数组了。

  • 数组的定义
a = [1, 2, 3, 4, 5, 6]##数组中可以存放同一种类型的值
b = [1, 'hello world', True, 1.1]#数组中页可以存放不同的类型
c = range(0,10)#返回一个从0到9的数组(range是python的基本方法)
print(a)
print(b)
输入结果:
[1, 2, 3, 4, 5, 6]
[1, 'hello world', True, 1.1]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
  • 数组的操作
a = [1, 2, 3, 4, 5, 6, 6]  ##数组中可以存放同一种类型的值(可重复)
for item in a:  # 遍历
    print(item) # 挨个输出 1 2 3 4 5 6 6
b = a[0]  # 取对应位置值
print (b) # 1
a.index(2) # 取第二个位置的值
a.__len__() # 数组a的长度
a.__contains__(1) # 数组a是否包含值:1  返回结果:True
c = a[-1]  # 取最后一个值
print (c) # 6
d = a[1:3]  # 从第1到第3个(不包括,下标从0开始,下同)  [2, 3]
d = a[:3]  # 从第0个到第3个  [1, 2, 3]
d = a[:]  # 全部取出 [1, 2, 3, 4, 5, 6, 6]
d = a[3:]  # 从第3个位置到最后 [4, 5, 6, 6]
d = a[3:-2]  # 从第三个到倒数第二个[4, 5]
d = a[3:-6]  # 结果为 []
a.count(1) # 包含1的个数

a.append(7)  # 添加元素
print(a) # [1, 2, 3, 4, 5, 6, 6, 7]
a.remove(3)  # 移除指定元素
print(a) # [1, 2, 4, 5, 6, 6, 7]
a.pop(0)  # 移除指定位置的元素(计算下标从0开始)
print(a) # [2, 4, 5, 6, 6, 7]

元组

上面说的数组列表是可以修改、删除的,Python中还有一种和数组一样的数据结构,但是其定义之后不可以再修改,这就是元组。

a=(1,2,3) # 除了增删之外,其他方法和list一样

字典

字典举个很简单的例子就是统计学生的得分情况:robby=80,Monek=98,Joy=60,这种一个名字对应这个名字的信息。其中名字叫做键,信息叫做值。字典就是这些键值对的组合。

  • 定义
a = {'zhangsan': 100, "lisi": 89, "wangwu": 98}
print(a) # {'zhangsan': 100, "lisi": 89, "wangwu": 98}
a = {100: 100, 200: 89, 300: 98}
print(a) # {100: 100, 200: 89, 300: 98}
a = {100: 100, 100: 89, 100: 98}
print(a) # {100:98}

字典有以下几点注意的:

1.键必须是唯一的;

2.键只能是简单对象,比如字符串、整数、浮点数、bool值(比如list不能作为键,但是可以作为值)。

  • 操作
a = {'zhangsan': 100, "lisi": 89, "wangwu": 98}
a['zhangsan']  # 取出key为'zhangsan'的值 100
a.get('zhangsan')  # 取出key为'zhangsan'的值 100
del a['lisi']  # 删除key为'lisi'的值
a.pop('wangwu')  # 删除key为'wangwu'的值
a['zhangsan'] = 99  # 改变key为'zhangsan'的值
a['laosan'] = 88  # 新增一个key为'laosan',value为88的
for key in a:
    print a[key]  # 遍历a中的元素
a.keys()  # 返回a中的所有key的列表
a.has_key('zhangsan')  # 判断是否包含key为'zhangsan'的值
a.clear()  # 清空map a

逻辑判断

写程序的时候会用到很多逻辑的判断,比如是否满足、循环、等等,和其他语言一样,Python中也有if else、while、for循环等。

逻辑真与假

在逻辑判断中其根本都是建立在逻辑的真(True)与假(False)中,而真与假也会涉及到一些比较运算符和逻辑运算符号(比较运算符和逻辑运算符的结果都是 bool 类型的值),如下:

  • 比较运算符

>:大于(不含冒号,下同)

<:小于

>=:大于等于

<=:小于等于

==:等于。比较两个值是否相等。是两个等号,这样为了和变量赋值区分开来。

!=:不等与

  • 逻辑运算符

not:逻辑“非”。如果x为True,则not x为False

and:逻辑“与”。如果x为True,且y为True,则x and y为True

or:逻辑“或”。如果x、y中至少有一个为True,则x or y为True

a = True  # True
a = 1 > 3  # False
a = 1 < 3  # True
a = not 0  # True 0、""、''、{}、[] 都认为是False
a = not 1  # False
a = 1 and 2  # True
a = 0 and 2  # False
a = 1 > 3 or 3 < 4  # False
a = 1 < 3 or 3 < 4  # True

if elif else

if else 根据字面意思理解,程序会顺序执行遇到if语句的时候,会去判断它所带条件的真假。

“如果”为True,就会去执行接下来的内容。“如果”为False,就跳过去执行esle的语句。书写语法规范:

if 条件:

​ 选择执行的语句

else :

​ 选择执行的语句

特别说明:条件后面的冒号不能少,同样必须是英文字符。

  • if else
a = True
if a:
    print('a的逻辑为真')
    print('我可以在这里做一些逻辑为真的时候的操作')
else:
    print('a的逻辑为假')
  • If elif else
a = False
b = True
if a:
    print('a的逻辑为真')
    print('我可以在这里做一些逻辑为真的时候的操作')
elif b:
    print('a的逻辑为假,b的逻辑为真')
else:
    print('a、b的逻辑为假')

其中,else非必要

a = False
b = True
if a:
    print('a的逻辑为真')
    print('我可以在这里做一些逻辑为真的时候的操作')
elif b:
    print('a的逻辑为假,b的逻辑为真')
或者:
if a:
    print('a的逻辑为真')

for循环

for循环可以迭代操作一些事情,比如迭代输出一个数组list的元素、计算从1到100的和等。

a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
for item in a:
    print(item)  # 迭代输出a中的所有值
a = range(1, 101)
result = 0
for item in a:
    result += item  # 计算从1到100的和 x+=y运算符表示x、y相加后再把结果赋值给x

while

while是用来控制循环语句的,就好比男女朋友生气时,男孩不来哄女孩,女孩就会一直不理男孩一样,

while 男孩没哄女孩:

​ 女孩一直不理男孩

a = True  # 代表两个人吵架,而男孩还没有哄女孩
b = 0  # 吵架过去了多少时间
while a:
    print('现在他还没有哄我,不搭理他')
    b += 1
    if b > 10:  # 过了10分钟,男孩知错了,去哄女孩子了
        a = False
print('两人和好了')

break、continue、return

在循环逻辑中,有这么一种情况,执行到某一步的时候,需要不再继续往下执行,这个时候就需要用到break语句了,比如上面的那个循环语句可以改为:

a = True  # 代表两个人吵架,而男孩还没有哄女孩
b = 0  # 吵架过去了多少时间
while a:
    b += 1
    if b > 10:  # 过了10分钟,男孩知错了,去哄女孩子了
        break # 道完歉之后,两人和好了
    print('现在他还没有哄我,打他一下') # 每过一分钟不来哄的话就打他一下
print('两人和好了')

如果只是暂时不往下执行,下一个循环的时候还需要执行的话,就可以用到continue语句,比如上面的情景,每隔五分钟,女孩需要中场休息。

a = True  # 代表两个人吵架,而男孩还没有哄女孩
b = 0  # 吵架过去了多少时间
while a:
    b += 1
    if b > 11:  # 过了10分钟,男孩知错了,去哄女孩子了
        break  # 道完歉之后,两人和好了
    if b % 5 == 0:
        continue  # 每隔五分钟,中场休息,不会执行打一下的语句
    print('现在他还没有哄我,打他了%d下' % b)  # 每过一分钟不来哄的话就打他一下
print('两人和好了')


现在他还没有哄我,打他了1下
现在他还没有哄我,打他了2下
现在他还没有哄我,打他了3下
现在他还没有哄我,打他了4下
现在他还没有哄我,打他了6下
现在他还没有哄我,打他了7下
现在他还没有哄我,打他了8下
现在他还没有哄我,打他了9下
现在他还没有哄我,打他了11下
两人和好了

类型转换

上面说了基本类型的定义,而基本类型之间是可以相互转化的。

int(x) #把x转换成整数

float(x) #把x转换成浮点数

str(x) #把x转换成字符串

bool(x) #把x转换成bool值

a = 'hello ' + 'zhangsan'  # a值为:hello zhangsan
a = 'hello ' + 100  # 报错,在python中字符串和数值不能相加
a = 'hello ' + str(100)  # str可以
b = '1'
c = 1 + int(b)  # 2
c = 1 + float(b)  # 2.0
bool(1)  # true

对字符串的格式化还有一种方式,使用%的方式:

%d 整数

%f 浮点型(%.2f 保留两位小数)

%s 字符串

具体用法如下:

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

推荐阅读更多精彩内容