python基础入门2

#元组:
tup1=(1)
print(type(tup1))#<class ‘int’>
tup2=(1,)
print(type(tup2))#<class ‘tuple’>,当元组里面只有一个数值时要加,才会时元组类型,否则就视为括号里面本身的数值类型
tup3 = (“abc”,“def”,2020,2021)
print(tup3[0])#abc
print(tup3[-1])#2021,和列表一样,打印最后一个
print(tup3[1:3])#分割,也可用步进值,左闭右开
‘’’

‘’’
#增加元素-—连接(不是在某个元组上新增了,而是新建了一个元组来存储拼接之后的)
tup1 = (12,34,56)
tup2 = (“abc”,“xyz”)

tup = tup1 + tup2
print(tup)#(12, 34, 56, ‘abc’, ‘xyz’)

#删除 del
tup1=(12,34,56)
print(tup1)
del tup1#删除了整个元组,连定义的变量都已经删除了
print(“删除之后变为”)
print(tup1)#NameError: name ‘tup1’ is not defined
‘’’

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

‘’’
d={‘Michal’:95,‘Bob’:75,‘Tracy’:85,‘Tim’:75}
#print(d[‘Michal’])#95
#print(d[‘Jerlin’])#访问不存在的键,会直接报错
print(d.get(“gender”))#None,使用get方法,找不到但不报错,默认返回none
print(d.get(‘Bob’,‘80’))#75,原key有,就不管修改后的结果
print(d.get(‘gender’,‘m’))#m,没找到的话,可以设定默认值
‘’’

‘’’
#增
info = {“name”:“Bob”,“age”:18}
newID = input(“请输入新的学号”)
info[“id”] = newID
print(info[“id”])

#删除
#【del】
info = {“name”:“Bob”,“age”:18}
print(“删除前:%s”%info[“name”])
#del info[“name”]#和键值一起删除掉打印结果会报错
#print(“删除后:%s”%info[“name”])
#clear
info.clear()#清空后:{}
print(“清空后:%s”%info)

#修改
info = {“name”:“Bob”,“age”:18}
info[“age”]=20
print(info[“age”])#20修改成功
‘’’

‘’’
#查询
info = {“id”:1,“name”:“Bob”,“age”:18}
print(info.keys())#得到所有的键(列表)dict_keys([‘id’, ‘name’, ‘age’])
print(info.values())#得到所有的值(列表)dict_values([1, ‘Bob’, 18])
print(info.items())#得到所有的项(列表)dict_items([(‘id’, 1), (‘name’, ‘Bob’), (‘age’, 18)])

#遍历所有的键
for key in info.keys():
print(key)
#打印结果如下:
id
name
age

#遍历所有的值values
info = {“id”:1,“name”:“Bob”,“age”:18}
for value in info.values():
print()valu
#输出结果:
1
Bob
18

#遍历所有键值对
info = {“id”:1,“name”:“Bob”,“age”:18}
for key,value in info.items():
print(“key=%s,value=%s”%(key,value))
输出结果:
key=id,value=1
key=name,value=Bob
key=age,value=18

mylist = [“a”,“b”,“c”,“d”]
#enumerate为枚举类型,将key,与value分开
print(enumerate(mylist))#<enumerate object at 0x016EB188>
for x in mylist:
print(x)
for i,x in enumerate(mylist):#同时拿到列表的下标和元素内容
print(i,x)
#打印结果
0 a
1 b
2 c
3 d
‘’’

‘’’
set(集合)
set和dict类似,也是一组key的集合,但不存储value。由于key不能重复,所以在set中没有重复的key
set是无序的,重复元素在set中自动被过滤
set可以看成数学意义上的无序和无重复元素的集合,因此,两个set可以做数学意义上的交集(&),并集(|),差集(-)等操作
遍历集合:通过for循环: for i in set1: print(i)
更新集合:update方法: set1.update(set2)
向集合添加新元素:add方法:set.add(5)
移除集合中的元素:remove方法:set.remove(5)
弹出元素:pop方法: val=set.pop()
清除元素:clear方法:set.clear()
删除集合:del:del set
获取集合长度:len()
获取最大的元素:max()
获取最小的元素:min()
其他类型对象转换成集合:set()

s=set([1,2,3])
s=set([1,1,2,2,3,3,3])
print(s)#自动过滤重复的{1, 2, 3}
‘’’

‘’’
函数的概念:如果在开发程序时,需要某块代码很多次,但是为了提高编写的效率以及代码的复用,所以把具有独立功能的代码块组织为一个小模块,这就是函数。
函数的定义:
def 函数名():
代码
demo:
#定义一个函数,能够完成打印信息的功能:
def printInfo():
print ‘------------’
print ’ i love you ’
print ‘------------’
#函数的调用
printInfo()
printInfo(info,“end=\t”)
printInfo()

#带参数的函数
def add2Num(a,b):
c = a + b
print©

#add2Num(11,22)
或者是
result = add2Num(11,22)
print(result)

#返回多个值的函数
def divid(a,b):
shang = a / b
yushu = a % b
return shang,yushu

sh,yu=divid(5,2)#需要使用多个值来保存内容
print(“商:%d,余数:%d”%(sh,yu))
‘’’

‘’’
例题
1、写一个打印一条横线的函数

def printInfo():
print("-"*30)

printInfo()

2,写一个函数,可以通过输入的参数,打印出自定义行数的横线
def printInfo(a):
i=0
while i<a:
print("-"*30)
i+=1
printInfo(int(input(“请输入一个数:”)))
3,写一个函数求三个数的和
def Sum(a,b,c):
return a+b+c
a=Sum(10,20,30)
print(a)
print(Sum(10,20,30))

4,写一个函数求三个数的平均值
def Avg(a,b,c):
return (a+b+c)/3
或者是:
sum = Avg(10,20,30)
avg = sum / 3.0
return avg

avg=Avg(1,2,3)
print(avg)
‘’’

‘’’
#全局变量和局部变量
如果调用的函数在定义时有形参,那么在调用的时候就应该传递参数
调用时,实参的个数和先后顺序应该和定义函数中要求的一致
如果调用的函数有返回值,那么就可以用一个变量来进行保存这个值
作用域:
在一个函数中定义的变量,只能在本函数中用(局部变量)
在函数外定义的变量,可以在所有的函数中使用(全局变量)
#函数内部局部变量优先使用(就近原则),没有局部变量的话默认全局变量,局部函数内部的更改不影响全局变量数值的大小
a = 100 #全局变量
def test1():
a = 300 #局部变量
#global a 声明全局变量在函数中的标识符
print(“test1-------修改前:a= %d”%a)#a= 300
a = 100
print(“test1-------修改后:a= %d”%a)#a= 100
def test2():
a=500 #不同的函数可以定义相同的名字,彼此无关
print(“test2-------:a= %d”%a)#a= 500

print(a)#a=100,全局变量不受局部变量改变的影响
test1()
test2()
‘’’

‘’’
r 以只读方式打开文件,文件的指针将会放在文件的开头,这是默认模式
w 打开一个文件只用于写入,如果该文件已存在则将其覆盖,如果该文件不存在,创建新文件
a 打开一个文件用于追加,如果该文件已存在,文件指针将会放在文件的结尾,也就是说新的内容将会被写入到已有内容之后,如果该文件不存在,创建新文件进行写入
rb 以二进制格式打开一个文件用于只读,文件指针将会放在文件的开头,这是默认形式
wb 以二进制格式打开一个文件用于写入,如果该文件已存在则将其覆盖,如果该文件不存在,创建新文件
ab 以二进制格式打开一个文件用于追加,如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
r+ 打开一个文件用于读写,文件的指针将会放在文件的开头
w+ 打开一个文件用于读写,如果该文件已存在则将其覆盖,如果该文件不存在,创建新文件。
a+ 打开一个文件用于读写,如果该文件已存在,文件指针将会放在文件的结尾,文件打开时会是追加模式,如果该文件不存在,创建新文件用于读写。
rb+ 以二进制格式打开一个文件用于读写,文件的指针将会放在文件的开头
wb+ 以二进制格式打开一个文件用于读写,如果该文件已存在则将其覆盖,该文件不存在,创建新文件。
ab+ 以二进制格式打开一个文件用于追加。如果该文件已存在,文件的指针将会放在文件的结尾,如果该文件不存在,创建新文件用于读写。

f = open(“test.txt”,“w”)#w写入模式,如果文件不存在,就在路径下新建一个
f.write(“hello world”)#将字符串写入文件中
f.close() #关闭文件

#read方法,读取指定的字符,开始时定位在文件头部,每执行一次向后移动指定字符数
f = open(“test.txt”,“r”)#w写入模式,如果文件不存在,就在路径下新建一个
content = f.read(5)#读五个字符
print(content) #hello

content = f.read(5)#再往后读五个字符
print(content) # worl打印的字符中就包括空格

content = f.readlines()#一次性读取全部文件为列表,每行一个字符串元素

content = f.readline()#一次读取文件的一行

print(content)#[‘hello world’]返回一个元组,如果文档里面是多行,则全部打印
#循环打印进行行打印
i = 1
for temp in content:
print("%d:%s"%(i,temp))
i+=1
f.close() #关闭文件,要养成随手关闭文件的好习惯

#文件的相关操作
文件重命名:
os模块中的rename()可以完成对文件的重命名操作
rename(需要修改的文件名,新的文件名)

import os
os.rename("毕业论文.txt","毕业论文--最终版.txt")

#删除文件
os模块中的remove()可以完成对文件的重命名操作
remove(待删除的文件名)
import os
os.remove(“毕业论文.txt”)

#创建文件夹
import os
os.mkdir(“张三”)

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

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

#获取目录列表
import os
os.listdir("./")

#删除文件夹
import os
os.rmdir(”张三“)
‘’’

‘’’
#捕获异常(异常类型判断可以通过报错来知道,产生的错误类型必须要和捕获的错误类型一致)
try:
print("----------1-----------")
f = open(“123.txt”,“r”)#打开一个不存在的文件,报错后后面的语句就不执行
print("----------2-----------")

except IOError: #文件没找到,属于io(输入输出异常)
pass #捕获异常后,执行的代码

#嵌套捕获
try:
print("----------1-----------")
f = open(“123.txt”,“r”)
print("----------2-----------")

print(num)#NameError类型

except (IOError,NameError) as result: #将可能产生的所有异常类型,都放到下面的小括号中
print(“发生错误了”)
print(result)

#try finally和嵌套
try:
f = open(“123.txt”,“r”)
except Exception as result:
print(“发生异常”)
finally:
f.close()
print(“文件关闭”)

import time
try:
f = open(“123.txt”,“r”)

try:#加延时
    while True:
        content = f.readline()
        if len(content) == 0:
            break
        time.sleep(50)
        print(content)
finally:#就算被中断了,也一定会被执行
    f.close()
    print("文件关闭")

except Exception as result:
print(“发生异常”)

finally:
f.close()
print(“文件关闭”)
#放在这里会报出以下错误:说f未声明
Traceback (most recent call last):
File “D:/pydemo/test1/demo1.py”, line 733, in
f.close()
NameError: name ‘f’ is not defined

参与评论 您还未登录,请先 登录 后发表或查看评论
相关推荐

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:数字20 设计师:CSDN官方博客 返回首页

打赏作者

小狗无语

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值