python 作业

文章目录

  • _ _ name _ _
  • 文件备份与即使更新
  • 检查和纠正小写 (正则表达式)
  • 返回字符的最后出现
  • 为向量增加内积
  • 接收圆的半径作为参数,返回圆的面积
  • 集合
  • 列表的排序
  • 迭代器对象不可以使用两次
  • 方法中self 的作用
  • 字符串的格式化

_ _ 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

文件备份与即使更新

python 作业_第1张图片


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))

python 作业_第2张图片

  • [‘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


python 作业_第3张图片

  • 8 //666+++++
  • 7 //a:️:c

为向量增加内积

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

python 作业_第4张图片

  • 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')
   

python 作业_第5张图片

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

集合

python 作业_第6张图片

  • 不能,在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)

python 作业_第7张图片

  • d
  • False
  • A
  • 97

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

python 作业_第8张图片

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

方法中self 的作用

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

字符串的格式化

你可能感兴趣的:(python,python,开发语言)