Python基础入门 (二基础知识及语法)

常用的数据结构

1.编程规范

2.基本数据类型

3.列表,元组,字典,集合

4.文件操作

5.条件判断

6.分支循环

 

1.编程规范

-代码开头 顶格编写,除非在条件判断或循环

-代码层级 第一层顶格编写,第二层开头预留4个空格

-对齐方式 同一层级必须严格对齐

-注释 单行注释 # 多行注释 首尾处用成对三引号引用, '''注释'''   """注释“”“

- 代码块 if, while, for均以冒号结尾,冒号后面接上的语句是代码块

 

2.基本数据类型

-变量不需要声明

-变量赋值后才会被创建

-类型是变量所指的内存中对象的类型

基本数据类型:Number(数字), String(字符串), LIst(列表), Tuple(元组), Set(集合), Dictionary(字典)

可变:Number(数字), String(字符串),Tuple(元组) 不可变:LIst(列表), Set(集合), Dictionary(字典)

 

3.列表,元组,字典,集合

Number:

int float bool complex(复数)

type() 查询变量所指的对象类型

isinstance() 判断变量所指类型是否是某类型

del() 删除变量 

a=1
print(type(a))
print(isinstance(a,int))
print(isinstance(a,float))
del(a)
print(a)

 

String

-使用单引号或双引号

-使用反斜杠\转义特殊字符

-不让反斜杠转义,在字符串前边添加一个r

-索引以0为开始值,-1为末尾的开始位置

-'+'进行字符串连接

-字符串不能发生变化

str="I'm ok"
print(str)
print(str[2])
print(str+str)
print('I\'m ok')
print(r'I\'m ok')
str[1]='a'

 

List 

- 一种有序集合

- 元素类型可以是不相同的

- 可随时添加和删除其中的元素 append insert pop

- 可以被索引和切片

- '+'是列表连接

- 元素可变

t=[ 'a', 'b', 'c', 'd', 'e'] 0~4   -5~-1

note=['apple','banaba','pear','peach']
print(note)
print(len(note))
print(note[0])
print(note[-1])
print(note[-2])
note.append('melon') #末尾追加
print(note)
note.insert(1,'grape') #位置之后
note.pop() #删除末尾元素
note.pop(1)
note[0]='watermelon'
L=['Apple',12,True,'']

 

Tuple

-元组写在小括号()中,元素之间用逗号隔开

- 与字符串一样,依然可以索引和切片

- 元组的元素不可改变,但可以包含可变对象(如list)

- 构建单元素的元组,需要格外注意逗号

- 可以使用'+'进行拼接

note=('apple','pear','grape') #元组不可变,没有append(),insert()
note[-1]
t=(1,) #与小括号表达式区别
t=('apple', 'grape',['melon','pear'])
t[2][0]='a'
t[2][1]='b'

 

dictionary

- {key1:value1, key2:value2,...}

- 是一种无序的键值集合,通过键来存取

- 列表是一种有序的对象集合,通过偏移存取

- 同一个字典中,键(key)必须是唯一的

- 创建空字典: {}

d={'key1':1,'key2':2,'key3':3}
d['key1']
'key4' in d #False
d.get('key4') #返回none时不显示
d.get('key4', '-1') #指定返回值
d.pop('key1')
key5=[1,2,3]
d[key5]='list' #列表不能作为字典中的key值

dict:

查找和插入的速度极快,不会随着key的增加而变慢;
需要占用大量的内存;

list:

查找和插入的时间随着元素的增加而增加;
占用空间小

dict同时存储key和value,根据key值计算value的位置,其中key是不可变对象,通过key计算value存储位置的算法称为哈希算法。
字符串,整数等都是不可变的,可以放心的用作于key值,list是可变的,不能作为key。

 

Set

- 不重复的元素组成的集合

- 基本功能是进行成员关系测试和删除重复元素

- 创建集合使用大括号{} or set()

- 空集合只能使用set(),不能使用{}, {} 是用来创建字典的

- 集合操作:交集,并集,差集,同时并不能存在两个集合中的元素

s=set([1,2,3,4,5,6,6]) #重复元素会被过滤
s.add(6) #添加重复元素不会有效果
s.remove(4)
s1=set([1,2,3])
s2=set([2.3,4])
s1&s2 #交集
s1|s2 #并集

 

数据类型转换

 int(x)  float(x)  str(x)  tuple(s)  list(s)  set(s)  dict(d) 创建一个字典,d必须是一个(key,value)元组

 

4.文件操作

-读文件:打开文件open() 读取文件read() 关闭文件close()

-读取特定文件:二进制文件,字符编码文件

-写文件

 

读文件

#第一种方法
f = open('./test.txt', 'r')#'r'表示读
f.read()
f.close() #关闭以免占用操作系统的资源

#第二种方法
#读写时一旦出错,后边文件的关闭就不会调用,为了无论是否出错都能产生正确的关闭文件,可以使用try...finally来实现
try:
    f = open('./test.txt', 'r')
    print(f.read())
finally:
    if f:
        f.close()

#第三种方法
#简化上述语句,会自动调用close()
with open('./test.txt','r') as f:
    print(f.read())

 

read()会一次性读取文件的全部内容,如果文件的内容很大,内存就会爆炸。所以可以采用read(size)的方法,每次最多读取size个字节的内容。
readline()可以每次读取一行内容
readlines()一次读取所有内容并按行返回list

若文件很小,read()一次性读取最方便;
若不能确定文件的大小,反复调用read(size)比较保险; 若是配置文件,调用readlines()最方便。

f = open('./test.txt', 'r')
for line in f.readlines():
    print(line.strip()) #去掉末尾的'\n'
f.close()

 

读取特定文件

二进制文件

f = open('./Tulips.jpg', 'rb')

f.read() #输出十六进制表示的字节

 

字符编码文件

f = open('./gbk.txt' , encoding = 'gbk')

f.read()

 

遇到编码错误后如何处理

f = open('./gkb.txt', 'r', encoding = 'gkb', errors = 'ignore')

f.read()

 

写文件

标识符'w', 'wb'

f = open('./test.txt' , 'w')

f.write('Hello, world')

f.close() #只有调用close()方法时,操作系统才保证把没有写入的数据全部写入磁盘。
#因此,忘记调用close()的结果是数据可能只写一部分到磁盘了,剩下的丢失了

 

'w'会直接复写之前的内容,使用'a'以追加方式写入,另外保险的做法是使用with语句

with open('./test.txt', 'a') as f:

f.write(',开始读写文件之旅!')

 

写入特定编码文本

open('./gbk.txt', 'w', encoding = 'gkb')

 

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

fruits = ['apple', 'grape', 'banana', 'melon']
for fruit in fruits:
    print(fruit)
    

# 0-100的整数求和
sum = 0
for i in range(101):
    sum += i
    print(sum)

while

sum = 0
n = 100
while n > 0:
    sum += n
    n = n - 1
    print(sum)

 

break:退出循环

continue:退出当前循环

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值