python 作业

发布时间:2024年01月11日

_ _ name _ _

  • 在hello.py 文件中有如下代码
def main():
    if __name__ == '__main__':
        print('This program is run directly')
    elif __name__ == 'text3':
        print('this program is run as a module')

main()
# main() 是考点
  • 直接运行hello.py 文件 输出This program is run directly
  • 在另一个py 文件 hellomodule.py 中导入 hello 作为模块使用
import hello  
# 直接导入hello 即可,不用加py

文件备份与即使更新

在这里插入图片描述


from os import listdir,mkdir,makedirs
from os.path import isdir,isfile,join,getmtime,getatime,exists
import shutil


def listDFS(directory,newdirectory):
    for subPath in listdir(directory):
        path = join(directory,subPath) # 合并
        newpath = join(newdirectory,subPath)
        if isfile(path): # 判断是否为文件
            # print(path)
            # shutil.copy(path,newpath) # path 是已经存在的文件 newpath 是新的文件
            if not exists(newpath):
                shutil.copy(path, newpath)  # path 是已经存在的文件 newpath 是新的文件
                print("新增加文件 " + newpath)
        elif isdir(path): # 判断是否为文件夹
            # mkdir(newpath) 不能使用这个
            # makedirs(newpath, exist_ok=True)
            # listDFS(path,newpath)
            if not exists(newpath):
                makedirs(newpath, exist_ok=True)
                print("新增加文件夹 "+ newpath)
                listDFS(path, newpath)

listDFS(r"d:\Desktop\python 课程设计",r"d:\Desktop\001123")

检查和纠正小写 (正则表达式)



import re

def checkModify(s):
    return re.sub(r'\b(\w)(\w+)(\w)\b',lambda x : x.group(1) + x.group(2).lower() + x.group(3),s)
s = 'aBc HJSH H eee fEEfff'

print(checkModify(s))

在这里插入图片描述

  • [‘111’, ‘22’, ‘3’, ‘’] //[‘111’, ‘22’, ‘3’, ‘’]
  • 6 //111223

返回字符的最后出现

def lastAppear(s):
    result = []
    for ch in s :
        if ch in result :
            result.remove(ch)
        result.append(ch)

    return result


在这里插入图片描述

  • 8 //666+++++
  • 7 //a:🅱?:c

为向量增加内积

  • 增加该方法即可
def dot(self,anothorPoint):
    return self.__x*anothorPoint.__x + self.__y*anothorPoint.__y + self.__z * anothorPoint.__z

在这里插入图片描述

  • in

接收圆的半径作为参数,返回圆的面积

from math import pi as PI

def CircleArea(r):
    # 确保数值正确
    if isinstance(r,(int,float)):
        return PI*r*r
    else:
        print('You must enter an integer or float as radius')
   

在这里插入图片描述

  • 13 //[8,3,2]
  • 16 //[8,3,5]
  • 15 //[8,2,5]
  • lambda 表达式:常用来声明匿名函数,常用在一个在临时需要一个类似函数的功能但是又不想定义函数的场合,也可以使用lambda 表达式定义具名函数
  • 生成器表达式:包含 yield 语句可以用来创建生成器对象的函数,yield 语句与return 类似,但是每次执行到yield 语句会返回一个值后会暂停或挂起后面的代码的运行

集合

在这里插入图片描述

  • 不能,在1到10之间无法生成20个不重复的整数,程序死循环无法正常退出
  • 1
  • 1275

列表的排序

import random

data = [random.randrange (50) for i in range(20)]

print(data)
data[:10] = sorted(data[:10])
data[11:] = sorted(data[10:] ,reverse= True)
# reverse = True 表示降序排序

print(data)

在这里插入图片描述

  • d
  • False
  • A
  • 97

迭代器对象不可以使用两次

在这里插入图片描述

  • [-3,3]
  • 不能,第一次得到[(‘a’, ‘1’), (‘b’, ‘2’), (‘c’, ‘3’)] ,第二次是一个空列表 [],因为zip 返回一个可迭代的zip 对象,而这个 zip 对象只能遍历一次,访问过的元素就不存在了

方法中self 的作用

  • 在类定义中,所有的方法的首个参数一般为self :
    作用:
    (1)在类内部,实例化过程中传入的数据都赋值给这个变量
    (2)代表对象实例:等价于 <类>.方法(<对象>,参数) 这里的<对象> 就是self

字符串的格式化

文章来源:https://blog.csdn.net/weixin_74850661/article/details/135475536
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。