Python基础总结(一)
1、注释
单行注释:‘#’ + 注释内容
多行注释:’’’ + 注释内容 + ‘’’,也可以为双引号
特殊注释:
(linux下)#!+ python路径 + /env + 空格 + python
(python2)# encoding=utf-8
(python2)# coding:utf-8
2、中文乱码
产生原因:编码和解码的规范不同
ASCII规范:
1)、字符转数字的规范
2)、怎样存储的规范
3、变量
定义:不是用来存储数据的,而是引用某个数据
作用:复用、维护、节省空间(磁盘存储和内存)
规则:
1)变量名 = 值
2)变量名1,变量名2 = 值1,值2
3)变量名1 = 变量名2 = 值
注意:
1)一个变量只能引用一个数值
2)变量名使用之前一定要赋值
3)命名规范:非关键字、区分大小写、驼峰标识、字母数字下划线组成
4、数据类型
查看数据类型:type(数据)
含义:
1)区分存储空间
2)根据不同数据类型的特征,做不同的数据处理
常用数据类型:
Numbers(数值类型):int,long,float,complex
Bool(布尔类型):True,False
String(字符串): ‘,",’’’,"""
List(列表)
Set(集合)
Tuple(元组)
Dictory(字典)
NoneType(空类型)
5、类型转换
整型:int(x)
浮点型:float(x)
字符型:str(x)
表达式字符串:repr(x)
字符:chr(x)
uniclde字符:unichr(x)
整数:ord(x)
16进制字符串:hex(x)
8进制字符串:oct(x)
计算字符串中有效表达式,返回对象:tuple(str)
列表:list(s)
元组:tuple(s)
静态类型:类型是编译的时候确定的,后期无法修改,例如C语言:int i = 5
动态类型:类型是运行时进行判定的,可以动态修改,例如python: i = 5
强类型:例如:python中,(“a” + 4),执行时报错
弱类型:例如:C中,(“a” + 4),执行时自动发生类型转换
python:强类型的动态类型语言
6、运算符:算术运算符
加:+(数值相加,其他拼接相连)
减:-
乘:*
幂运算:**(次方运算)
除:/(数学中运算规则)
整除:// (取商数)
取模:% (取余数)
赋值:=
整除和求余的应用场景:行列问题等
注意:
1)除0问题
2)优先级问题,使用()解决
7、运算符:符合运算符
a x= 值 :a = a x 值
+= : (a = a + 5) == (a += 5)
-= : (a = a - 5) == (a -= 5)
*= : (a = a * 5) == (a *= 5)
**= : (a = a ** 5) == (a **= 5)
%= : (a = a % 5) == (a %= 5)
//= : (a = a // 5) == (a //= 5)
8、运算符:比较运算符
’ > ’ :大于
’ < ’ : 小于
’ != ’ :不等于
’ <> ’ :python2中表示不等于
’ >= ':大于等于
’ <= ’ :小于等于
’ == ’ :等于(比对的是值)
’ is ’ :比对的是唯一标识
’ id(x) ’ : 查看唯一标识
’ print(id(x)) ’ : 打印唯一标识
链式比较运算符:5 < x < 10 不用如C语言般将其拆成两个部分
9、运算符:逻辑运算符
not : 非,取反
and : 与,并且,同真则真,一假全假,若前一个参数假,则不往后走,直接判错,若前一个参数为真,则判断下一个参数
or : 或,或者,一真全真,若前一个参数假,则判断下一个参数,若前一个参数为真,直接判真
注意:
1)非布尔类型真假判定:非零即真,非空即真
2)整个逻辑表达式的结果不一定只是True和False
10、输入
获取数据:
1)程序内部写死的数据
2)从文件里面读取 .txt(文件的读取操作)
3)网络服务器进行获取(网络请求)
4)接收用户的输入:
(1) 、input()函数,class:str
(2) 、eval()函数,class:int
11、输出
输出数据:
1)写回到文件里面保存
2)发送回服务器
3)打印到控制台,通过界面展示给用户看
print()函数:
格式:print(values,sep,end,file,flush)
values:需要输出的值,多个值时,使用‘,’进行分割
sep:分隔符,多个值被输出之后,会添加指定的分隔符
end:输出完毕后,以指定字符结束,默认’\n’
file:表示输出的目标,默认是控制台,还可以是一个可写入的文件句柄
flush:表示立即输出,值为Bool类型(解决缓冲区停留问题,flush=True直接在控制台输出)
使用场景:
输出一个值
输出一个变量
输出多个变量: print(num1,num2)
格式化输出格式 :print("{0},{1}".format(name,age))
输出到文件中:print(“xxxxxx”,file=file)
输出不自动换行
输出的各个数据使用分隔符分割
12、格式符
格式化输出:占位符
print("%s,%d"%(name,age))
%[(name)] [flags] [width] [.precision] typecode
[ ]:可以省略
(name):表示根据制定的名称(key),查找对应的值,格式化到字符串当中
例:
maths = 98
englishs = 99
print("%(ms)d,%(es)d"%({“es”:englishs,“ms”: maths})
width:表示占用的宽度
例:
print("%6d"%maths):占了6位
flags:
空:右对齐
-:左对齐
空格:为一个空格,表示在正数的前面加一个空格,从而与负数对其
0:用0填充
.precision : 表示小数点后精度
typeCode:
数值:i/d,o,x,e,E,f,F,g,G (g:自动调整)
字符串:s(str),r (repr),c(unicode对应的值)
特殊:%(转义)
注:python中百分号格式不存在自动将整数转换成二进制表示的方法
13、python执行顺序
大走向:从上到下
其他:分支、循环
14、python分支
1)单分支判断
例:
age = 17
if age >= 18 :
(Tab) print(“xxxxxxx”)
print(“xxxxxxxxxxxx”)
2)双分支判断
例:
age = 17
if age >= 18 :
(Tab) print(“xxxxxxx”)
else:
(Tab) print(“xxxxxooooo”)
3)if嵌套
if:
(Tab)print()
else:
(Tab)if:
(Tab) (Tab)print()
(Tab)else:
(Tab) (Tab)print()
4)多支判断
if:
(Tab)print()
elif:
(Tab)print()
elif:
(Tab)print()
else:
(Tab)print()
5)注意
强制缩进、嵌套层次不要太深、没有switch…case语法
容错处理:
例:
if not xxxxx:
(Tab)exit()
print(1)
print(2)
print(3)
15、python循环
简介:周而复始,重复性的做某些事情
1)while循环
(1)考虑好循环的结束条件,防止死循环
(2)修改条件
(3)打断循环break
(4)没有类似于do…while循环
(5)与else连用
while 条件:
(Tab)print(条件满足时执行的语句)
else:
(Tab)print(条件不满足时执行的语句)
2)for循环
1)介绍:遍历一个集合,遍历完毕即循环结束
for x in xxxx:
(Tab)print()
2)与else连用,如果for循环顺利的执行完毕,则会执行else,如果被break打断,则不会执行else
for x in xxxx:
(Tab)print(条件满足时执行的语句)
else:
(Tab)print(条件不满足时执行的语句)
3)反转字符串
例:
ntc = “123456789”
rst = “”
for i in ntc:
(Tab)rst = i + rst
print(rst)
3)循环打断
1)break:打断本次循环,跳出整个循环
for i in range(1,7):
(Tab)if i == 4:
(Tab)(Tab)break
(Tab)print(i)
123
2)continue:结束本次循环,继续执行下次循环
for i in range(1,7):
(Tab)if i == 4:
(Tab)(Tab)continue
(Tab)print(i)
12356
4)分支循环及嵌套
(1)循环内嵌套if
(2)循环内嵌套循环
(3)pass语句:空语句,保证结构的完整性
(4)案例练习:
a:水仙花数
num = input(“请输入一个三位数:”)
num = int(num)
if not (100 <= num < 1000):
(Tab)print(“您输入的数据无效”)
(Tab)exit()
bai = num//100
shi = (num % 100) // 10
ge = num % 10
value = bai ** 3 + shi ** 3 +ge ** 3
if value == num:
(Tab)print("%d是水仙花数" % num)
else:
(Tab)print("%d不是水仙花数" % num)
b:猜数字
import random
num = random.randint(1, 100)
while True:
(Tab)cai = input(“请猜这个数字是多少:”)
(Tab)cai = int(cai)
(Tab)if cai == num:
(Tab) (Tab)print(“恭喜您!结果正确!”)
(Tab) (Tab)exit()
(Tab)elif cai > num:
(Tab) (Tab)print(“您猜的数字过大了!请重新猜数字!”)
(Tab)elif cai < num:
(Tab) (Tab)print(“您猜的数字过小了!请重新猜数字!”)