Python(Ⅱ):编程规范、数据类型、文件操作、条件判断、分支循环

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_24990189/article/details/89682970

目录

1.编程规范

2.基本数据类型

(1)概述

(2)Number

(3)String

(3)List

(4)Tuper

(5)dicitionary

(6)set

3.数据类型转换

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} 并集

3.数据类型转换

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')

猜你喜欢

转载自blog.csdn.net/qq_24990189/article/details/89682970