python程序设计基础

文章 , 技术分享
658 0

视频教程+文字教程

视频教程:
教程确实很有质量

第一章 Python概述

安装VS Code

安装插件:Python、Chinese

指定代码存放的文件夹

在VS Code中编写Python程序并运行

第二章 基本数据类型与操作

一、Python数据类型

img

#整数
print(20)

#浮点数
print(20.16)
print(3.14e10)

#字符串
print('hello world')
print("hello \
      world")
print('''hello 
      world''')

print(3*"hello world")
print('111'+'222')
print(111+222)

#进制转换
print(bin(1024)+'\n'+oct(1024)+'\n'+hex(1024))

#NoneType
print(print('hello'))

二、数据类型查看

type() isinstance()

print(type(10))
print(type(2.56))
print(type("ccit"))
print(type(None))
print(type(""))

print(isinstance(17,int))
print(isinstance(1.7,float))
print(isinstance('17',str))

三、数据类型转换

int() float() bool() str()

print(str(17-9))
print(int(3.14))
print(isinstance('17',str))

img

img

四、变量

每个变量在使用前必须赋值,变量赋值后才会被创建。

变量命名规则:以字母或下划线开头,不能数字开头,由数字、字母和下划线组成;变量名区分大小写;需要避开关键字

name="常小新"
age=19
college="ccit"
name,age,college="常小新",19,"ccit"
age1=age2=age3=20
print(name,age,college)
print(age1,age2,age3)

使用VS Code运行Python程序出现中文乱码的解决办法

前提:自己安装了code runner的插件
快捷键Ctrl+Shift+P,打开设置Open Settings (JSON),输入:
set PYTHONIOENCODING=utf-8 && python

image

五、运算符

(1)算术运算符

img

(2)赋值运算符

img

(3)比较运算符

img

(4)逻辑运算符

img

python短路运算:Python解释器在做布尔运算时,只要能提前确定计算结果,就不会继续往后算了,直接返回结果。例如在计算a and b时,如果 a 是 False,则根据与运算法则,整个结果必定为 False,因此返回 a;如果 a 是 True,则整个计算结果必定取决与 b,因此返回 b。

优先级从高到低:not and or

print(not 0 and 5)
print(3 or 5 and 8)

(5)同一运算符

a=3
b=3
c=4
print(a is b)
print(a is c)
print(b is c)

(6)成员运算符

a="hello world"
b="llo"
result=b in a
print(result)

(7)运算符优先级

img

六、字符串处理

(1)字符串截取

索引:字符串中元素的位置,从左到右,从0开始到字符串长度-1;从右到左,从-1开始到负字符串长度。

获取字符串单个字符

a="How are you?"
print(a[2])
print(a[-3])
print(a[0])
print(len(a)-1)
print(a[-1])
print(-len(a))

获取字符串一部分字符(切片)

a="How are you?"
print(a[:])
print(a[3:6])
print(a[2:])
print(a[2:2])
print(a[5:2])
print(a[2:-1])
a="How are you?"
print(a[::])
print(a[3:6:])
print(a[2::2])
print(a[5:2])
print(a[5:2:-1])
print(a[5::-2])

(2)字符串内置函数

len() ord() chr() max() min()

img

a="How are you?"
b=len(a)
c=a[2]
d=ord(c)
e=chr(d)
print(a)
print(b)
print(c)
print(d)
print(e)
print(max(a))
print(min(a))

(3)字符串常用操作方法

大小写

a="How Are you?"
print(a.capitalize())
print(a.casefold())
print(a.lower())
print(a.upper())
print(a.swapcase())
print(a.title())

内容判定

passwd="abc123"
print(passwd.isalpha())
print(passwd.isalnum())
print(passwd.isdigit())

首尾去除特定内容

a="  How are you?  "
print(a.strip())
print(a.lstrip())
print(a.rstrip())

首尾内容查找

website='http://www.ccit.js.cn'
print(website.startswith('http://'))
print(website.endswith('.cn'))
print(website.startswith('www',7))

字符串内容查找

a="How are you?"
print(a.find('are'))
print(a.index('ow'))
print(a.find('wo'))
print(a.index('wo'))

字符串内容替换

a="How are you?"
print(a.replace('you','they'))
print(a.replace('o','O',1))
print(a.replace('o','O'))

字符串分割(切片)

a="How are you?"
print(a.split())
b="192.168.1.254"
print(b.split('.'))
print(b.split('.',1))
_,_,_,c=b.split('.')
print(c)
a="/var/www/html/index.asp"
b=a.split('/')[4]
print(b)

height,weight=map(float,input("input your height and weight spliting with blank:").split())
BMI=weight/pow(height,2)
print('BMI:',BMI)

字符串拼接

path='c: system todo f.txt'
print(path)
print('/'.join(path.split()))

七、格式化输出

(1)续行符

print('据中国载人航天工程办公室消息,北京时间'+\
'2022年9月17日17时47分,经过约5小时的出舱活动,'+\
'神舟十四号航天员陈冬、刘洋、蔡旭哲密切协同,完成'+\
'出舱活动期间全部既定任务,航天员陈冬、航天员蔡旭哲'+\
'已安全返回问天实验舱,出舱活动取得圆满成功。')

(2)转义字符

img

print('\\\t\\')
print(r'\\\t\\')

(3)格式化操作符(%,format(),f" ")

img

print('姓名:%s,年龄:%d,身高:%f'%('常小新',20,1.88))
id,name,age,height,major=input('请输入学号,姓名,年龄,身高(米),专业,用空格分隔:').split()
print('个人信息:\n学号:%8s\n姓名:%s\n年龄:%d\n身高:%f\n专业:%s'\
                %(id,name,int(age),float(height),major))

print('个人信息:\n学号:{:.8s}\n姓名:{}\n年龄:{}\n身高:{}\n专业:{}'\
                .format(id,name,int(age),float(height),major))

print(f'个人信息:\n学号:{id:.8s}\n姓名:{name}\n年龄:{int(age)}\n身高:{float(height)}\n专业:{major}')

print('姓名:{},年龄:{},身高:{:.1f}'.format('常小新',20,1.88))
print(f"姓名:{'常小新'},年龄:{20},身高:{1.88:.1f}")

八、常见异常类型

语法错误(Syntax Error) 运行时错误(Runtime Error) 语义错误(Semantic Error)

第三章 条件选择语句

一、if语句

age=input("请输入年龄:")
age=int(age)
if age>20:
    print("你已经成年了")
age=input("请输入年龄:")
age=int(age)
if age>20:
    print("你已经成年了")
else:
    print("你还未成年呐")
age=input("请输入年龄:")
age=int(age)
b="你已经成年了" if age>20 else "你还未成年呐"
print(b)

输入成绩并判断等第(0-59不及格,60-79合格,80-89良好,90-100优秀)

grade=input("请输入成绩:")
grade=int(grade)
if grade<60:
    print("不及格")
else:
    if grade<80:
        print("合格")
    else:
        if grade<90:
            print("良好")
        else:
            print("优秀")    
grade=input("请输入成绩:")
grade=int(grade)
if grade<60:
    print("不及格")
elif grade<80:
    print("合格")
elif grade<90:
    print("良好")   
else:
    print("优秀")

二、循环控制语句while

i=0
while i<3:
    grade=input("请输入成绩:")
    grade=int(grade)
    if grade<60:
        print("不及格")
    elif grade<80:
        print("合格")
    elif grade<90:
        print("良好")   
    else:
        print("优秀")
    i=i+1
while True:
    grade=input("请输入成绩:")
    if grade=='exit':
        break
    grade=int(grade)
    if grade<60:
        print("不及格")
    elif grade<80:
        print("合格")
    elif grade<90:
        print("良好")   
    else:
        print("优秀")

三、循环控制语句for

a="How are you?"
for i in a:
    print(i,end='')
for i in range(10):
    print(i)

range(10)

range(0,10)

range(2,10)

range(0,10,2)

a="How are you?"
for i in range(len(a)):
    print(a[i],end='')
for i in range(3):
    grade=input("请输入成绩:")
    grade=int(grade)
    if grade<60:
        print("不及格")
    elif grade<80:
        print("合格")
    elif grade<90:
        print("良好")   
    else:
        print("优秀")
passwd="haha"
for try_count in range(3):
    input_pd=input("请第"+str(try_count+1)+"次输入密码:")
    if input_pd==passwd:
        print("密码正确!")
        break
    else:
        print("再试下!")
else:
    print("密码输入满三次,你已经没有机会再试了!")
b=""
a="How are you?"
for char in a:
    if char==" ":
        continue
    else:
        b=b+char
print(b)

第四章 列表与元组

列表生成式

newList=["不及格"if cos<60 else "及格" for cos in scoresList]
cont=[cityList.count(city) for city in uniqlits]

一、创建列表

1.直接创建列表

students=['李明',80,True]
students=[]

2.使用list()创建

a=list()
a=list("How are you?")

二、访问列表

1.使用索引访问列表元素

参考字符串截取的索引操作。

2.通过元素值访问列表索引

students=['李明',80,True]
scoreindex=students.index('李明')
print(scoreindex)

三、编辑列表

1.添加列表元素

students=['李明',80,True]
students.append(1.78)
print(students)
students.insert(1,'通信212')
print(students)

2.扩展列表

students=['李明',80,True]
course=["数学","必修课"]
students.extend(course)
print(students)
students=['李明',80,True]
course=["数学","必修课"]
print(students+course)
print(students)

3.修改列表元素

students=['李明',80,True]
students[0]="张强"
print(students)

4.删除列表元素

students=['李明',80,True]
students.remove(80)
students=['李明',80,True]
print(students)
students=['李明',80,True]
a=students.pop()
print(students)
print(a)
students=['李明',80,True]
a=students.pop(1)
print(students)
print(a)
del students[0]
print(students)

四、列表元素排序

score=[77,78,56,98,86,68,93]
score.sort()
print(score)
score.sort(reverse=True)
print(score)

score=[77,78,56,98,86,68,93]
score1=sorted(score)
print(score1)
score2=sorted(score,reverse=True)
print(score2)
print(score)

要在特定插入点扩展列表,您可以使用列表切片

>>> l = [1, 2, 3, 4, 5]
>>> l[2:2] = ['a', 'b', 'c']
>>> l
[1, 2, 'a', 'b', 'c', 3, 4, 5]

列表切片非常灵活,因为它允许用另一个列表中的一系列条目替换列表中的一系列条目:

>>> l = [1, 2, 3, 4, 5]
>>> l[2:4] = ['a', 'b', 'c'][1:3]
>>> l
[1, 2, 'b', 'c', 5]

五、列表切片

参考字符串截取部分内容。

六、嵌套列表

students=[]
student1=['李明',80,True]
student2=['王英',90,False]
students.append(student1)
students.append(student2)
students.insert(1,student)
print(students)
print(students[1][1])

七、遍历列表

1.按元素遍历

students=[['李明',80,True],['张强',90,True],['王英',98,False]]
for student in students:
    print(student)

2.按索引遍历

students=[['李明',80,True],['张强',90,True],['王英',98,False]]
for i in range(len(students)):
    print(students[i])

八、列表推导式

1.循环模式

oddNumList=[num*2 for num in range(1,6)]
print(oddNumList)
students=[['李明',80,True],['张强',90,True],['王英',98,False]]
names=[student[0] for student in students]
print(names)

2.筛选模式

students=[['李明',80,True],['张强',90,True],['王英',98,False]]
scores=[student[1] for student in students if student[1]>85]
print(scores)

九、列表常用方法

1.列表元素计数

a=list("Hello World!")
print(a.count('l'))
print(a.count('o'))

2.列表元素的逆置

a=list('你是年少的欢喜')
a.reverse()
print(a)
print("".join(a))

3.列表的最大值与最小值

score=[12,34,56,44,89]
print(max(score))
print(min(score))

十、创建元组

1.直接创建

score=(12,34,56,44,89)

2.使用内置函数创建元组

a=tuple("hello world")
print(a)

十一、访问元组

参考列表元素访问部分。

十二、序列的封包与解包

序列:字符串、列表、元组

student='李明',80,True
print(student)
name,score,sex=student
print(name)
print(score)
print(sex)
student=['李明',80,True]
name,score,sex=student
print(name)
print(score)
print(sex)
num="312"
a,b,c=num
print(a)
print(b)
print(c)

序列部分解包

student=['李明',80,True]
name,*restinfo=student
print(name)
print(restinfo)

十三、压缩函数

1.序列压缩

names='周一','吴二','张三','李四','王五'
scores=88,89,90,78,86
a=zip(names,scores)
print(a)
b="Hello World!"
c="How are you?"
print(list(zip(b,c)))

2.序列解压缩

a=[('周一', 88), ('吴二', 89), ('张三', 90), ('李四', 78), ('王五', 86)]
a1,a2=zip(*a)
print(a1)
print(a2)

第五章 字典与集合

一、创建字典

1.直接创建

stu_grade={}
stu_grade['语文']=98
stu_grade['数学']=108
stu_grade['英语']=98
print(stu_grade)

2.使用内置函数创建

stu_grade=dict()
stu_grade['语文']=98
stu_grade['数学']=108
stu_grade['英语']=98
print(stu_grade)

二、访问字典

stu_grade={'语文':98,'数学':108,'英语':98}
print(stu_grade.keys())
print(stu_grade.values())
print(stu_grade.items())
print(stu_grade['数学'])
print(stu_grade.get('英语'))

三、编辑字典

stu_grade={'语文':98,'数学':108,'英语':98}
print(stu_grade)
stu_grade['物理']=99
print(stu_grade)
stu_grade['语文']=90
print(stu_grade)
del stu_grade['数学']
print(stu_grade)
stu_grade.pop('语文')
print(stu_grade)

四、遍历字典

stu_grade={'语文':98,'数学':108,'英语':98}
for stu_grade_one in stu_grade.keys():
    print(stu_grade_one)
for stu_grade_one in stu_grade.values():
    print(stu_grade_one)
for stu_grade_one in stu_grade.items():
    print(stu_grade_one)

五、创建集合

集合特性:

1.互异性:元素不重复。

2.确定性:元素可增删,但不可修改,元素类型是数值、字符串等不可变类型。

3.无序性:元素没有位置索引。

courses={'语文','数学','英语','物理'}
print(courses)
courses=['语文','数学','英语','语文']
print(courses)
courses=list(set(courses))
print(courses)

八、集合运算

并、交、差、对称差

a={1,2,3,4,5,6}
b={1,3,5,7,9,11}
print(f'a和b的并运算结果(a|b):{a|b}')
print(f'a和b的交运算结果(a&b):{a&b}')
print(f'a和b的差运算结果(a-b):{a-b}')
print(f'a和b的对称差运算结果(a^b):{a^b}')

九、集合的其他常用操作

1.遍历集合

courses={'语文','数学','英语','物理'}
for course in courses:
    print(course)    

2.编辑集合

courses={'语文','数学','英语','物理'}
print(courses) 
courses.add('化学')
print(courses) 
courses.remove('英语')
print(courses) 

十、集合推导

a={'john','tom','mike','lisa'}
b={name.upper() for name in a}
print(b)
a={12,18,3,8,20}
b={i for i in a if i>12 and i<20}
print(b)

编程练习

在千寻进入魔法世界的期间,有一位“无脸男”一直跟在她的身边。一开始,千寻对无脸男的跟踪感到害怕,直到她第一次听见了无脸男对她说的话后,才理解了他,并和他成为了朋友。

第1题要求:

下面是千与千寻中无脸男对千寻说的话,请你把这段话,运用转义字符按照如下格式打印出来。
千寻你好,人们叫我'无脸男'
这个世界的人都选择无视我
只有你看到了我并和我打招呼
我感到很孤单,很孤单
你愿意和我成为朋友吗?

打印皮卡丘字符画

へ     /|
  /\7    ∠_/
  / │   / /
 │ Z _,< /   /`ヽ
 │     ヽ   /  〉
  Y     `  /  /
 イ● 、 ●  ⊂⊃〈  /
 ()  へ    | \〈
  >ー 、_  ィ  │ //
  / へ   / ノ<| \\
  ヽ_ノ  (_/  │//
  7       |/
  >―r ̄ ̄`ー―_

第2题要求:

数据拼接中,为了将不同的信息进行整合,可以使用拼接符号
但是,如果数据非字符串类型,则无法进行拼接。此时,我们可以使用数据转换函数str(),将数据转换为字符串类型后,再进行拼接。
并且针对不同类型的数据,我们需要经历多次转换,最后才能转为字符串类型。

请运用所给变量,使用数据转换str()int()float()及数据拼接符号+,打印一句话: 脸黑怪我咯7张蓝票一个SSR都没有

slogan = '脸黑怪我咯'
number = '7.8'
unit = '张'
sentence = '蓝票一个SSR都没有'

第3题要求:

复仇者联盟的成员也是有工资的,然而,由于美国队长一直被冰封在北极,错过了多次调薪机会,所以美国队长的工资一直是每月80美元。光荣挺进史塔克穷人榜前三名,并获封“美元队长”称号。

请你写出一段代码,判断美国队长的工资水平,代码需要满足如下条件:
1.如果月工资小于等于500美元,显示“欢迎进入史塔克穷人榜前三名”
1.1如果月工资在100-500美元之间,显示“请找弗瑞队长加薪”
1.2如果月工资小于等于100美元,显示“恭喜您荣获“美元队长”称号!”
2.如果月工资在500-1000美元之间(含1000美元),打印“祝贺您至少可以温饱了。”
3.其他情况下,如果工资大于1000美元,打印“经济危机都难不倒您!”
3.1如果工资在1000-20000美元(含20000美元)之间,打印“您快比钢铁侠有钱了!”
3.2如果月工资大于20000美元,打印“您是不是来自于瓦坎达国?”
4.不管赋值改变后输出结果如何,都需固定打印结果“程序结束”

第4题要求:

为了三强争霸赛的舞会,罗恩想要减肥,所以他决定控制自己的饮食,少吃一点巧克力蛙。
哈利为了帮助好朋友罗恩,和他一起制定了一个饮食游戏。
游戏规则如下:
如果罗恩一天吃超过10个巧克力蛙,罗恩要给哈利100块;
如果罗恩一天吃小于等于10个的巧克力蛙,哈利就给罗恩100块。

请你写出一段代码:
当随机输入罗恩一天吃的巧克力蛙数量时,可以判断出这天,是罗恩给哈利钱,还是哈利给罗恩钱,并打印出来。

第5题要求:

接受了霍格沃茨来信的你,带着欣喜与好奇,跟着魔咒学老师吴枫教授,来到了巫师世界的对角巷。在这个相当于人类集市的对角巷,你立刻被魔法世界稀奇古怪的东西吸引,想掏手机刷花呗买买买。
但是吴枫教授说,麻瓜(没有魔法的人)货币在魔法世界不流通,但是你可以去巫师世界的银行——古灵阁兑换货币。你立刻跟着吴枫老师跑到了古灵阁。当你进到巫师世界的银行时,就有银行的小精灵职员问好:

注意:以下背景与题目要求相关
小精灵:您好,欢迎来到古灵阁,请问您需要帮助吗?需要or不需要?
你:需要
小精灵:请问您需要什么帮助呢?1 存取款;2 货币兑换;3 咨询
你:2
小精灵:金加隆和人民币的兑换率为1:51.3,即一金加隆=51.3人民币
小精灵:请问您需要兑换多少金加隆呢?
(你说了一个数字N)
小精灵:好的,我知道了,您需要兑换(你说的数字N)金加隆。
小精灵:那么,您需要付给我(你说的数字N*51.3)人民币。

注1:如果选择不需要帮助,小精灵会礼貌地说'好的,再见。'
注2: 如果选择帮助【1 存取款】,小精灵会推荐你去存取款窗口;如果选择帮助【3 咨询】,小精灵会推荐你去咨询窗口。

请你综合四天所学知识,将上图换钱故事的对话,用代码表现出来。

第6题要求:

在层层嵌套的各种数据类型中,准确地提取出你需要的数据。

在未来世界,一个新建的童话镇吸引了不少人入住。不过,在人群里隐藏着一只狼,会威胁大家的安全。
童话镇的镇长希望你能找到它,并揭发其身份。

用程序语言就是说:列表中有个字符串是“狼”,将其打印出来吧。

townee = [
    {'海底王国':['小美人鱼''海之王''小美人鱼的祖母''五位姐姐'],'上层世界':['王子','邻国公主']},
    '丑小鸭','坚定的锡兵','睡美人','青蛙王子',
    [{'主角':'小红帽','配角1':'外婆','配角2':'猎人'},{'反面角色':'狼'}]
    ]

第7题要求:

假设有两名囚徒A和B因为合伙犯罪被抓捕,因没有确凿可以指认罪行的证据,审判者准备单独审判两位囚徒。
若两人都认罪,则两人各判10年;若一个认罪一个抵赖,则认罪的人判1年,抵赖的人判20年;若两人都抵赖,则各判3年。

第8题要求:

通过这个练习,你会尝试用循环来解决生活中的问题,并了解一种新的列表方法。

小明、小红、小刚是同班同学,且坐在同一排,分别坐在第一位、第二位、第三位。
由于他们的身高都差不多,所以,老师计划让他们三个轮流坐在第一位。
每次换座位的时候,第一位变第三位,后面两位都往前一位。每次换座位后输出座位表。

第9题要求:

我很喜欢看电影,我回忆了一下,这两年我觉得还不错的国产电影。
下面,会将电影的影片名和主演放在字典里,比如:

movie = {'妖猫传':['黄轩','染谷将太']}

需要你补充一些代码,让其他人只要输入演员名,就打印出:××出演了电影××。

movies = {
'妖猫传':['黄轩','染谷将太'],
'无问西东':['章子怡','王力宏','祖峰'],
'超时空同居':['雷佳音','佟丽娅'],
}

第10题要求:

我们会通过今天的作业,掌握列表的两个新运用:合并列表和列表排序。

一次测评中,老师将 学习小组A 和 学习小组B 的测评成绩(满分 100 分)从低到高记录放进两个列表:
A = [91, 95, 97, 99],B = [92, 93, 96, 98] 。
现在,老师想将两个小组的成绩合并为一个列表,并按照从低到高的顺序排序,你能帮老师完成吗?

上一个练习中,我们完成了两组成绩的合并和排序。
不过,老师有了新的需求:想知道两组的平均分,以及把低于平均分的成绩也打印出来。
所以,在这个练习中,我们会帮老师计算出两组的平均分,并挑出那些在平均分之下的成绩。

第六章 函数

一、函数特征

def is_passed1(score):
    if score>=60:
        print('考试通过')
    else:
        print('考试没通过')
score=input("请输入成绩:")
is_passed1(float(score))

def is_passed2(score):
    if score>=60:
        result='考试通过'
    else:
        result='考试没通过'
    return result
score=input("请输入成绩:")
a=is_passed2(float(score))
print(a)

def 函数名(参数名1,参数名2,....,参数名N):

​ 语句块

​ return 返回值

二、函数的参数

1.位置参数

def 函数名(参数名1,参数名2,....,参数名N):

​ 函数体

调用函数格式

函数名(参数值1,参数值2,....,参数值N)

def sum_int(a,b):
    return a+b
print(sum_int(3,2))

2.默认参数

def sum_int(a,b=3):
    return a+b
print(sum_int(3))
print(sum_int(3,))
print(sum_int(3,4))

注:若同时存在位置参数与默认参数,默认参数要放在位置参数之后!!!

3.可变参数

def 函数名(*参数):

​ 函数体

def sum_int(*scores):
    k=0
    for i in scores:
        k+=i
    return k
print(sum_int(3,4,6))
print(sum_int(3,4,6,7))
print(sum_int(3,4,6,7,8))

注:用户可以输入任意数量的参数,接收为一个元组。

4.关键字参数

def 函数名(**参数):

​ 函数体

def stu_info(**kw):
    return kw
print(stu_info(name='张三',age=6,sex='男'))

4.命名关键字参数

def 函数名(参数,*,参数):

​ 函数体

def sum_int(i,*,a,b):
    return a+b+i
print(sum_int(i=1,a=1,b=2))
print(sum_int(2,a=1,b=2))
print(sum_int(2,1,b=2))
print(sum_int(2,1,2))

三、函数返回多个值

def max_min(scores):
    return max(scores),min(scores)

scores=[90,46,88,72,67]
print(max_min(scores))
max_score,min_score=max_min(scores)
print(f'最高分:{max_score}')
print(f'最低分:{min_score}')

三、局部变量与全局变量

k=0
def is_passed2(score):
    global k
    if score>=60:
        result='考试通过'
        k+=1
    else:
        result='考试没通过'
        k+=2
    return result
score=input("请输入成绩:")
a=is_passed2(float(score))
print(a)
print(f'k={k}')
# print(result)

四、模块

用户可以自定义模块,也可以用第三方模块。库是相关功能模块的集合,python拥有极其丰富的标准库和第三方库。

1.模块的导入

import os
a=os.getcwd()
print(a)
b=os.listdir(a)
print(b)

from os import getcwd
a=getcwd()
print(a)

from os import *
print(listdir(getcwd()))

import numpy as np
a=np.sum(3+4)
print(a)
from matplotlib import pyplot as plt
from matplotlib import font_manager

my_font = font_manager.FontProperties(fname = "C:/Windows/Fonts/simhei.ttf")
a = ["猩球崛起3:终极之战","敦刻尔克","蜘蛛侠:英雄归来","战狼2"]
b_16 = [15746,312,4497,319]
b_15 = [12357,156,2045,168]
b_14 = [2358,399,2358,362]

# 设置bar_width来绘制多条形图
bar_width = 0.2
x_14 = list(range(len(a)))
x_15 = [i+bar_width for i in x_14]
x_16 = [i+bar_width*2 for i in x_14]

plt.figure(figsize=(20,8),dpi=80)

plt.bar(x_14,b_14,width=bar_width,label="9月14日")
plt.bar(x_15,b_15,width=bar_width,label="9月15日")
plt.bar(x_16,b_16,width=bar_width,label="9月16日")

plt.xticks(x_15,a,fontproperties=my_font)

plt.legend(prop=my_font)
plt.show()

2.模块的创建

#max_min.py
import score_passed
def max_min(scores):
    return max(scores),min(scores)

scores=[90,46,88,72,67]
max_score,min_score=max_min(scores)
print(f'最高分:{max_score}')
print(f'最低分:{min_score}')
score_passed.is_passed(max_score)
#score_passed.py
def is_passed(score):
    if score>=60:
        print('考试通过')
    else:
        print('考试没通过')
if __name__=='__main__':
    score=input("请输入成绩:")
    a=is_passed(float(score))

第七章 文件的基本操作

一、文件读写

1.读文件

f=open("demo.txt",'r',encoding="utf-8")
content=f.read()
f.close()
print(content)
with open("demo.txt",'r',encoding="utf-8") as f:
    content=f.read()
print(content)
with open("demo.txt",'r',encoding="utf-8") as f:
    content=f.readline()
print(content)
with open("demo.txt",'r',encoding="utf-8") as f:
    content=f.readlines()
print(content)
with open("demo.txt",'r',encoding="utf-8") as f:
    for eachline in f:
        print(eachline,end="")

2.写文件

with open("demo1.txt",'w',encoding="utf-8") as f:
    f.write("我好饿")
with open("demo1.txt",'w',encoding="utf-8") as f:
    f.writelines(["白日依山尽,\n","黄河入海流。\n","欲穷千里目,\n","更上一层楼。"])
with open("demo1.txt",'a',encoding="utf-8") as f:
    f.writelines("离离原上草,\n一岁一枯荣。\n野火烧不尽,\n春风吹又生。")

3.多个文件读写

with open("demo.txt",'r',encoding="utf-8") as f1:
    with open("demo1.txt",'a',encoding="utf-8") as f2:
        content=f1.read()
        f2.write('\n'+content)

二、os模块

1.os模块方法

import os
print(os.getcwd())
print(os.listdir())
os.remove("demo.txt")
os.mkdir("mycode")
os.makedirs("mycode\\dir1\\dir2")
os.removedirs("mycode\\dir1\\dir2")
import os
a=os.system('ping 127.0.0.1')
b=os.popen('dir')
print(f'a:{a}')
print(f'b:{b.read()}')
print(os.sep)
print(os.linesep)
print('hello')
os._exit(0)
print('world')

2. os.path模块方法

print(os.path.abspath("code"))
print(os.path.basename("code"))
print(os.path.dirname("code"))
print(os.path.exits("code"))
print(os.path.isfile("demo.txt"))
print(os.path.isdir("code"))
print(os.path.islink("code"))
print(os.path.join(os.getcwd(),"demo.txt"))
最后更新 2023-07-15
评论 ( 0 )
OωO
隐私评论