python入门基本笔记_python基础整理笔记(一)

一. 编码

1. 在python2里,加载py文件会对字符进行编码,需要在文件头上的注释里注明编码类型(不加则默认是ascII).

1 #-*- coding: utf-8 -*-

2

3 print 'hello world'

2. str类型也是经过编码的有各种格式,和unicode字符串之间需要通过decode和encode互相转换.使用示例如下:

1 a = '中文'

2

3 b = a.decode('utfi-8')4

5 c = b.encode('gb2312')

3. 在python3中默认直接使用unicode,所以不需要注释编码了。python3中的str类型本身就是unicode,所以不再需要编码和解码。另外还有一个bytes类型,可以编码与str进行转换,和2中的str有很多相似的地方。

4. 各种编码小知识总结:

ascII:只包含英文 2^8 = 256 表示0~256:266种可能。

Unicode:万国码,包含所有字符 最少用两个字节 1byte = 8bit,可以表示2^16+1种可能 。

Utf-8: 英文、数字、符号:8位 欧洲:16位 中文:24位。

二. 变量

1. 变量命名规则:

(1)首字母为英文和下划线,其它部分则可以是英文、数字和下划线,区分大小写。python的变量命名推崇使用下划线区分单词的方式来命名,而不使用驼峰法。(其实python的类推荐用驼峰命名。)

(2)此外变量命名不能是python语法中的一些关键字,如['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 'try', 'while', 'with', 'yield']。

(3)然而python内部的类或特有的方法是可以被拿来命名变量的,这相当于起到了一个覆盖的效果,所以也应该避免,不推荐:如下图中所示,变量命名覆盖了原有功能"type"。

e5e7d64664435bc0da105ba922026758.png

2. str变量赋值

(1)python中str类型是不可变的,在内存中生成以后就一直是这个字符串,当把一个字符串变量的内容改变时,其实只是将这个变量名指向了一个新的字符串内容:

050d4340c55d04f5f4be1e2a13f7fe04.png

(从图中我们可以看到a, b两个变量id是一样的,即其实指向的是一个相同的字符串。)

(2)python中的str类型虽然不可变,但是在使用上我们还是可以对其进行改变,但这也只是将原有的变量名指向改变以后新生成的str而已:

b957f7fd07842f07ab97ac5f9af8b3c7.png

(从图中可见我们操作了变量a,成功将之修改,但是修改后其id已经改变;此外可以看到原有的b变量依旧指向原有的字符串内容,并没有随着a的改变一起变化)。

(3)但其实上面说的情况也不是一定的,当申请超过256字节的大变量时,python就会用malloc重新分配内存,即使两个变量的字符串内容一样,也是两个不同的内存地址了,如图所示:

e5acff305f56dbe4c2a39988ce05785a.png

3. int变量赋值

python中的int类型也有类似str的情况,在-5到257这样的小的常用整数里,系统已经初始化好,我们不同的变量如果值相等,实际指向的是内存中同一int,如图所示:

f609fdf3ef99441454e487cacda43ec8.png

但是超过这个范围的就是在申明变量时候新生成的了,如图所示,可以看到id已经不同了:

9fe4cc4b905f557fcb1bd8e81d433feb.png

4. bool类型变量

python中的bool类型为两种, True和False,可以做bool判断如下:

1 a =True2 ifa:3 print (1)4 else:5 print (2)

三. 判断分支

1. python中的判断都是通过 if, else, elif 这几个关键字实现的,并没有类似其他语言中的switch case语法,示例如下

1 a = 3

2 if a is 3:3 printa4 elif a is 2:5 print 22

6 else:7 print 1

2. 需要注意的是在python的if判断中,并非只有bool类型的变量可以使用,str, int, float甚至list, tuple, dict等容器也可以直接在判断中,所以使用的时候一定要小心,整理如下:

(1)str的空字符串会在if判断中为False,其他均为True

(2)int中0会判断为False,其他均为True

(3)float0.0判断为False,其他均为True

(4)空的容器如list,tuple,dict判断为False,其他为True

四. 循环语句

1. 第一种循环的语句是使用while关键字,使用示例如下:

1 i =02 while i < 5:3 print i

2. break 和 continue 两个功能分别用于跳出整个循环流程,和直接进入下一次循环,使用示例如下:

1 i =02 while i < 100:3 if i % 2:4 continue

5 if i == 99:6 break

7 print i

3. while语句其实也可以搭配else使用,这是python一种特殊的语法,else里语句只会在while正常结束时被执行(即break这种中断跳出的不会执行else内容),示例如下:

1 i =02 while i < 100:3 if i % 2:4 continue

5 if i == 99:6 break

7 printi8 else:9 print 'aaa'

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值