python基础---元组、字典、函数、文件、异常

python基础—元组、字典、函数、文件、异常

Tuple(元组)

tuple的元素不能修改
tuple写在小括号里 ,
只有一个元素的tuple也要加上 “,”

tup1=(1)
tup2=(2,)
print(type(tup1))
print(type(tup2))#只有一个元素后必须加 , 才能被认为是元组
#<class 'int'>  tup1类型
#<class 'tuple'>  tup2类型
tup3=(1,2,3,4,5,6,7,8,9)
print(tup3[1:5])#2.3.4.5

#增
tup=tup3+tup2
print(tup)#创造了一个新元组,

常用操作

访问元组中的元素 下标直接访问 print(tup1[2])
遍历元组 for for i in tup1:print(i)
元组的切片 使用[::] tup1[2:5:2]
加法操作

元组成员关系 in 2 in list1
得到重复元素数量 count tup1.count(1)
获取元组长度 len()
获取元组元素最大值 max()
获取元组元素最小值 min()
其他类型对象转换成元组 tuple()

dict(字典)

字典是无序对象的集合,使用键-值(key-value)存储,具有极快的查找速度。
键(key)必须使用不可变类型
同一个字典中,键(key)必须是唯一的

#字典的定义
info={"name":"lj","age":18}

#字典的访问
print(info["name"])
print(info["age"])

#访问了不存在的键
#print(info["grade"])
#直接访问报错
print(info.get("grade","nam"))#使用get方法没有找到对应的键则返回默认值“nam”
print(info.get("name",19))#结果为18,而不是19,在字典中有“name”

info["id"]="newId"
print(info["id"])

print("删除前:%s"%info["name"])
del info ["name"]
# del info#输出为空白,但不会报错
# print(info)
info.clear()#输出含{}
# clean (info)#输出会报错,
print(info)

info2={"name":"lj","age":18}
info2["age"]=20
print(info2["age"])#结果:20

查(遍历)

info2={"name":"lj","age":18}
print(info2.keys())#dict_keys(['name', 'age'])
                   #得到所有的键(列表)

print(info2.values())#dict_values(['lj', 18])
                     #得到所有的值(列表)

print(info2.items())#dict_items([('name', 'lj'), ('age', 18)])
                    #每一个键值是一个元组

#遍历所有的键值对
for key,value in info2.items():
    print("key=%s,value=%s"%(key,value))#key=name,value=lj
                                        #key=age,value=18


函数

函数的定义

def printinfo():
    print("---------------")
    print("人生苦短,我用python")
printinfo()

带参数的函数

def add2Num(a,b):
    c=a+b
    print(c)

add2Num(10,20)

带返回值的函数

def add2Num1(a,b):
    return a+b
print(add2Num1(10,20))

返回多个值的函数

def divid(a,b):
    shang=a//b
    yushu=a%b
    return shang,yushu
print(divid(10,3))
def hengxian():

    x=(int(input("请输入:")))


    a=random.randint(1,x)
    print(a)
    for i in range(1,a+1):
      print(i,"*"*i)

hengxian()

结果:
请输入:15
5
1 *
2 **
3 ***
4 ****
5 *****

文件

f=open("test.txt","w")#打开文件,w模式(写模式),文件不存在就新建
f.write("hello world,I'm here!")#将字符串写入文件中

```python
f=open("test.txt","r")#要再次确定文件打开方式,将上面的w模式改成r模式
f=open("test.txt","r")#要再次确定文件打开方式,将上面的w模式改成r模式

content1 = f.read(5) #表示读取单个字符

print(content1)#hello
content1 = f.read(5)
print(content1)# worl  包括空格也当成一个字符读取
# 会延续上面已读的往下读,而不会再次从头开始读
content1=f.readlines()#表示读取整个一行文件
#readline与readlines不一样,前者输出还是一行
i=1
for temp in content1:
    print("%d:%s"%(i,temp))
    i+=1
# 包括空行也能输出

content2=f.readline()#在上面for循环中输出为单个字符输出,下面直接输出则是只输出一行
print(content2)
#同样为延续输出
f.close()#关闭文件
结果:
hello
 worl
1:d,I'm here!#只有一行,而且延续上面已读

文件其他相关操作
1:文件重命名
import os
os.rename(”原名“,”现名“)

2:删除文件:
import os
os.remove(”文件名“)

3:创建文件夹:
import os
os.mkdir(”文件名“)

4:获取当前目录:
import os
os.getcwd()

5:改变默认目录:
import os
os.chdir("…/")

6:获取目录列表
import os
os.listdir("…/")

7:删除文件:
import os
os.rmdir(“文件名”)

异常

import time

try:
 print("---1-------------------")
 f=open("123.txt","r")
 print("---2-------------------")

except IOError:
    print("error")
#结果:---1-------------------
#     error

#try里面的第二句没有执行

Exception可以捕获所有异常

try:
 print(num)
except (IOError,NameError):#在括号中可以有多种可能出现的异常
    #异常想要被捕获,需要与异常情况一致
    print("出现错误")
except Exception as result:#Exception可以捕获所有异常
    print("产生错误")
    print(result)#name 'num' is not defined
                 #输出产生异常的原因

try…finally和嵌套

try:
    f = open("test.txt", "r")
    try:
        while True:
            content=f.readline()
            if len(content)==0:
                break
            time.sleep(2)
            print(content)
    finally:#如果可以执行到此代码的第二个try,则finally一定会被执行
        f.close()
        print("关闭文件")
except Exception as result:
    print("发生异常")
#结果:
hello world,I'm here!

hello world,I'm here!

hello world,I'm here!

hello world,I'm here!

hello world,I'm here!

hello world,I'm here!
关闭文件#finally被执行
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值