目录
1.编程规范
2.基本数据类型
(1)概述
(2)Number
(3)String
(3)List
(4)Tuper
(5)dicitionary
(6)set
(7)数据类型转换
4.文件操作
(1)读文件
(2)读取特定文件
(3)写文件
5.条件判断
6.分支循环for
7.分支循环while
8.有些循环需要提前终止
1.编程规范
(1)代码开头:Python代码必须顶格编写,除非被作为语句嵌套在条件判断或者条件循环中
(2)代码层级:第一层顶格编写;第二层开头预留4个空格(不考虑跨平台可以使用tab)
(3)对齐方式:同一层级的代码必须严格对齐(第一层顶格,第二层4个空格,第三层8个空格)
(4)注释:单行注释#,多行注释''' 注释 ''','' '' '' 注释 '' '' ''
(5)代码块:if, while , for 均以冒号结尾,然后通过4个空格开始下一层级的实际执行语句编写。(冒号接上的语句是代码块)
2.基本数据类型
(1)概述
【1】Python 中的变量不需要声明。
【2】变量赋值以后才会被创建。
【3】所说的“类型”是变量所指的内存中对象的类型。
基本数据类型包括:
【1】Number(数字)、String(字符串)、List(列表)、Tuple(元组)、Set(集合)、Dictionary(字典)
【2】又分为不可变数据(Number、String、Tuple),可变数据(List、Dictionary、Set)。
(2)Number
类型:
【1】int 整数类型
【2】float 浮点类型
【3】bool 布尔类型
【4】complex 复数类型
相关操作
【1】type() 查询变量所指的对象类型
【2】isinstance() 判断变量所指的类型是否是某类型
【3】del() 删除变量
a=1
print(type(a)) #<class 'int'>
print(isinstance(a,int)) #True
print(isinstance(a,float)) #False
del(a)
print(a) #NameError: name 'a' is not defined
(3)String
【1】字符串使用单引号‘’ 或 双引号“”括起来
【2】使用反斜杠 \ 转义特殊字符 ; 不让反斜杠转义,在字符串前面添加r
【3】索引值以0为开始值,-1为末尾的开始位置
【4】+ 进行字符串连接
【5】字符串不能发生改变
str = "I'm ok" #'I'm ok'输出错误
print(str) #I'm ok
print(str[2]) #m
print(str[-1]) #k
print(str+str) #I'm okI'm ok
print('I\'m ok') #I'm ok
print(r'I\'m ok') #I\'m ok
str[1] = 'a'
#TypeError: 'str' object does not support item assignment
(3)List
【1】一种有序集合
【2】元素类型可以是不相同的(数字、字符串、列表)
【3】可随时添加和删除其中的元素。append、insert、pop
【4】和字符串一样,可以被索引和切片
【5】“+” 是列表连接
【6】元素可变
note = ['apple','banana','pear','peach']
print(note)
print(len(note)) #4
print(note[0]) #apple
print(note[-1]) #peach
print(note[-2]) #pear
note.append('melon')
print(note) #['apple', 'banana', 'pear', 'peach', 'melon']
note.insert(1,'grape') #将元素插入到指定位置
print(note) #['apple', 'grape', 'banana', 'pear', 'peach', 'melon']
note.pop() #删除list末尾的元素
note.pop(1) #删除指定位置的元素
note[0]='water-melon'
print(note) #['water-melon', 'banana', 'pear', 'peach']
(4)Tuper
【1】元组写在小括号()中,元素之间用逗号隔开
【2】与字符串一样,依然可以索引和切片
【3】元组的元素不可变,但可以包含可变对象(如list)
【4】构造单元素的元组,需要格外注意逗号
【5】可以使用"+"进行拼接
#因为元组不可变,note元组没有append(),insert()方法,但可以采用list获取元素
note=('apple','pear','grape')
print(note[-1]) #grape
#当定义只有一个元素的tuple时,不能这么写t=(1)
t=(1,)
print(t) #(1,)
t=('apple','grape',['melon','pear'])
t[2][0]='a'
t[2][1]='b'
print(t) #('apple', 'grape', ['a', 'b'])
(5)dicitionary
【1】{key1:value1 , key2:value2}
【2】字典是一种无需的键值集合,通过键来存取
【3】列表是一种有序的对象集合,通过偏移存取
【4】同一个字典中,键(key)必须是唯一的
【5】创建空字典 {}
d = {'a':1 ,'b':2 , 'c':3}
print(d['a']) #1
#查看key值是否在字典里面
print('d' in d) #False
#key值不存在,返回None时,交互环境并没有显示,可以在key不存在的情况下指定返回值
print(d.get('d')) #None
print(d.get('d',-1)) #-1
#删除key操作
d.pop('c')
print(d) #{'a': 1, 'b': 2}
key4=[1,2,3]
d[key4]='list'#列表不能作为字典中的key值
(6)set
【1】不重复的元素组成的集合
【2】基本功能是进行成员关系测试和删除重复元素
【3】创建集合使用大括号{} or set()
【4】空集合只能使用set(),不能使用{},{}来创建空字典的
【5】集合操作:交集、并集、差集、同时并不存在两个集合中的元素
#重复的元素会被过滤掉
s= set([1,2,3,4,4,5,6,6])
print(s) #{1, 2, 3, 4, 5, 6}
#添加重复元素,不会有效果
s.add(6)
print(s) #{1, 2, 3, 4, 5, 6}
s.remove(4)
print(s) #{1, 2, 3, 5, 6}
#集合间的交并集
s1=set([1,2,3])
s2=set([2,3,4])
print(s1&s2) #{2, 3} 交集
print(s1|s2) #{1, 2, 3, 4} 并集
(7)数据类型转换
int (x) | x转换成一个整数 |
float(x) | x转换为浮点数 |
str(x) | x转换成字符串 |
tuple(s) | 序列s转换成一个元组 |
list(s) | 序列s转换成一个列表 |
set(s) | 转换为可变集合 |
dict(d) | 创建一个字典,d必须是一个(key,value)元组 |
4.文件操作
(1)读文件
打开文件open()、读取文件read()、关闭文件close()
#第一种方法:
#读文件
f = open('./test.ext','r')
#文件打开成功,调用read()方法可以一次读取文件的全部内容
print(f.read())
#通过调用close()方法关闭文件,文件不关闭会占用操作系统的资源,同时操作系统同一时间能打开的文件数量也是有限的
f.close()
#第二种方法:
#当文件读写时都有可能产生IOError,一旦出错,后边文件的关闭就不会调用
#为了无论是否出错都能正确的关闭文件,我们可以使用try..finally来实现
try:
f = open('./test.ext','r')
print(f.read())
finally:
if f:
f.close()
#第三种方法:
#上述比较繁琐
with open('./test.txt','r') as f:
print(f.read())
read()会一次性读取文件的全部内容;
readlines()一次读取所有内容并按行返回lsit;
f = open('./test.txt','r')
for line in f.readlines():
print(line.strip()) #把末尾的‘\n’去掉
f.close()
(2)读取特定文件
#二进制文件
#输出的是十六进制表示的字节
f = open('./Tulips.jpg','rb')
printf(f.read())
#字符编码文件
f = open('./gbk.txt',encoding = 'gbk')
printf(f.read())
#遇到编码错误后如何处理
f = open('./gbk.txt','r',encoding = 'gbk',errors='ignore') f.read()
(3)写文件
#‘w’会直接复写之前的内容
f = open('./test.txt','w')
f.write("Hello World")
f.close()
#‘a’以追加的形式写入,保险的做法是使用with语句
#close保证数据从内存直接写入磁盘
with open('./test.txt','a') as if:
f.write("开始读写文件之旅")
#写入特定编码的文本文件,就给open()函数传入encoding参数,将字符串自动转换成指定编码
open('./gbk.txt','w',encoding='gbk')
5.条件判断
x = int(input(birth:)) #input输入的为字符串类型,需要转成int类型
if x<2000:
print('00前')
else:
print('00后')
#当有两个或两个以上的判断语句时,需要使用elif判断
score =90
if score<60:
print('不及格')
elif score < 70:
print('中等')
elif score < 80:
print('良好')
else:
print(‘优秀’)
6.分支循环for
#遍历list,输出List中的元素
fruits = ["apple",'grape','banana','melon']
for fruit in fruits:
print(fruit)
#0-100整数求和
sum = 0
for i in range(101):
sum += i
print(sum)
7.分支循环while
#求0-100的整数之和
sum =0
n = 100
while n > 0:
sum += n
n=n-1
print(sum)
8.有些循环需要提前终止
n = 1
while n<=20:
if n>10: #打印前10个数就推出
break
print(n)
n=n+1
print("End")
#只打印1-20中的奇数
n=0
while n < 20:
n = n+1
if n % 2 == 0 :
continue
print(n)
print('End')