python / python script / test2 / homework
s
python基本运算符号 , https://www.php.cn/python-tutorials-480581.html
优先级:括号运算符 > 算术运算符 > 比较运算符 > 赋值运算符 > 逻辑运算符
-
pycharm debug 工具使用
C:\Users\Lindows\PycharmProjects\pythonProject_wanho\lindows\mypython\f20230506_debug.py
def func(a):
a += 10
return a
i = 10
i += 3
i = i - 5 # i为8
b = func(i) # b为18
b += 4 # b为22
print(b) # 结果为22
- 作业列表:

-

-

-

-

-

-
-
1.查询8080端口是被哪个进程PID占用,命令是________。
2.Linux中查看CPU和内存使用情况的命令是__________________。 问题1 top在中res 内存计算公式
3.把wanhe.txt和文件wanhe.doc使用tar命令打包并压缩成文件的命令是
4.查找/root文件夹中文件名以A开头的所有的普通文件并删除
5.启动Oracle监听服务
6.对scott账号进行解锁
7.查询出员工表(emp)CLERK职位在每个部门中的人数
8.直接删除emp表,不保留数据和结构的删除命令 。
9. 简述 VI 编辑器的三种模式,以及各个模式下的用法
10.编程:python实现打印[1,100]之间所有的的个位数不能为3且也不能被3整除的所有数
-
1、 字符串的基本使用
# 定义一个字符串 str1, 字符串的内容为 "hello world and wanhe and good girl and Python"
# 在字符串str1中查找 字符串 and 的下标
# 在字符串str1中查找字符串 'good'的下标
# 将字符串str1中的 and 替换为 or
# 将字符串 str1 按照 空白字符进行切割,保存到变量 list1 中
# 使用 _*_ 将 list1中的字符串进行连接
# 使用 逗号 将 list1中的字符串进行连接
2.练习对列表的增删改查统计的操作,具体操作如下:
1)声明一个列表,包含的数据有:["hello", "python", "wanhe", "hello", "girl"]
2)在列表中追加一个数据:"boy"
3)删除列表中的第二个数据
4)删除列表中的数据:"girl"
5)将列表中的第二个数据改为:"chaina"
6)在控制台打印列表中的第一个元素
7)统计列表中"hello"字符串出现的次数
8)在控制台打印列表的长度
9)循环遍历列表中的所有数据
3、计算字符串最后一个单词的长度,单词以空格隔开,字符串长度小于5000。(注:字符串末尾不以空格为结尾)
输入描述:输入一行,代表要计算的字符串,非空,长度小于5000。
输出描述:输出一个整数,表示输入字符串最后一个单词的长度。
例如:输入: hello nowcoder 输出:8

-

-
1、家具分不同的类型,并占用不同的面积
2、输出家具信息时,显示家具的类型和家具占用的面积
3、房子有自己的地址和占用面积
4、房子可以添加家具,如果房子的剩余面积可以容纳家具,则提示家具添加成功;否则提示添加失败
5、输出房子信息时,可以显示房子的地址、占地面积、剩余面积
"""
class Furniture: # 定义家具(家具名称,家具类型,家具大小)
def __init__(self, fname, ftype, farea):
self.fname = fname
self.ftype = ftype
self.farea = farea
class House: # 定义房子(默认地址,默认大小)
def __init__(self, address, area):
self.address = address
self.area = area
self.flist = [] # 定义家具清单
def add_furniture(self, furniture):
if self.area - furniture > 0:
print("ok")
-
class Furniture:
def __init__(self, name, furniture_type, area):
self.name = name
self.furniture_type = furniture_type
self.area = area
class House:
def __init__(self, address, area):
self.address = address
self.area = area
self.remaining_area = area
self.furniture_list = []
def add_furniture(self, furniture):
if self.remaining_area >= furniture.area:
self.furniture_list.append(furniture)
self.remaining_area -= furniture.area
print(f"Add {furniture.name} successfully!")
else:
print(f"Add {furniture.name} failed!")
def display_info(self):
print(f"Address: {self.address}")
print(f"Area: {self.area} square meters")
print(f"Remaining area: {self.remaining_area} square meters")
if self.furniture_list:
print("Furniture List:")
for furniture in self.furniture_list:
print(f" {furniture.furniture_type}: {furniture.name}, area: {furniture.area} square meters")
bed = Furniture("Bed", "Bedroom furniture", 4)
sofa = Furniture("Sofa", "Living room furniture", 6)
table = Furniture("Table", "Dining room furniture", 2)
house = House("123 Main St", 50)
house.add_furniture(bed)
house.add_furniture(sofa)
house.add_furniture(table)
house.display_info()
- # 获取本机所在外网真实IP.py
import smtplib
import urllib.request
from email.mime.text import MIMEText
from email.header import Header
from email.utils import formataddr
# 获取本机所在外网真实IP
def get_ip_address():
# 返回IPv6的地址
# return urllib.request.urlopen("https://ident.me").read().decode("utf8")
# 返回IPv4地址
return (
urllib.request.urlopen("https://ipv4.icanhazip.com")
.read()
.decode("utf8")
.strip()
)
# 发送邮件
def send_email(ip):
sender_email = "siemens800@126.com"
sender_password = "邮箱授权码" # 授权码
receiver_email = "siemens800@126.com"
# 构造邮件正文
content = f"本机所在外网真实IP为 {ip}"
msg = MIMEText(content, "plain", "utf-8") # plain = 纯文本, 可改为 "html"
msg["From"] = formataddr(("监控程序", sender_email))
msg["To"] = formataddr(("收件人", receiver_email))
msg["Subject"] = Header("本机IP地址通知", "utf-8")
# 推荐使用 SSL + 465
server = smtplib.SMTP_SSL("smtp.126.com", 465)
server.login(sender_email, sender_password)
server.sendmail(sender_email, [receiver_email], msg.as_string())
server.quit()
if __name__ == "__main__":
ip = get_ip_address()
send_email(ip)
print("邮件发送成功!")
- python exam
提示:以下是一个可能的考卷模板,包含基础的Python语言知识和应用能力的题目,仅供参考。
一、选择题(每题2分,共20分)
下列哪个不是Python的关键字?
A. and B. assert C. for D. switch
数字类型中舍弃小数部分,保留整数部分的函数是?
A. int() B. float() C. round() D. ceil()
下列哪个不是列表的方法?
A. append() B. pop() C. delete() D. insert()
下列哪个不是字典的特性?
A. 有序 B. 无序 C. 可嵌套 D. 键唯一
以下哪个语句可以用于Python中循环遍历?
A. while B. for-in C. do-while D. switch-case
以下哪个不是Python内置的模块?
A. os B. numpy C. re D. random
下面的代码会输出什么?
print(2**3//2)
A. 1 B. 2 C. 3 D. 4
如果想打印某个字符串的第一个字符,应该使用哪个语句?
A. print(mystr[0]) B. print("mystr[0]") C. print(mystr) D. print(mystr[1])
在Python中,如何定义一个元组?
A. (1,2,3) B. [1,2,3] C. {1,2,3} D. {'1':1,'2':2,'3':3}
如果想在Python中随机生成一个0-10之间的整数,应该调用哪个函数?
A. random.randint(0,10) B. random.choice(["B",'C',12])
C. random.random() D. random.shuffle(['A','B','C'])
二、填空题(每题2分,共10分)
以下语句的输出为:9
a = 5
b = 4
print(______)
在Python中如何进行文件读写?
可以使用______ 模块中的open()函数。
在Python中如何定义一个类?请简要说明。
使用class关键字来定义一个类,如下所示:
class MyClass:
def init(self, name):
self.name = name
下面这行代码的输出为:[1, 2, 3, 4, 5]
print(list(range(1,6)))
下面这个函数的功能是:打印所有小于n的素数。
def print_primes(n):
primes = []
for num in range(2, n+1):
for i in range(2, num):
if num i == 0:
break
else:
primes.append(num)
print(primes)
三、编程题(共70分)
编写一个Python程序,使用for循环输出1~20之间所有的奇数。(10分)
编写一个Python函数,接收一个字符串参数,输出该字符串的长度、第一个字符和最后一个字符。(15分)
编写一个Python程序,使用列表推导式生成一个自然数序列的平方序列,并打印该序列。(15分)
编写一个Python程序,循环计算一个整数序列的累积乘积,并输出结果。(20分)
编写一个Python类,实现一个计算器功能,其中需包含加减乘除四个运算方法,并实现异常处理。例如,当除数为0时,需输出提示信息。(30分)
(提示:可参考如下代码框架)
class Calculator:
def init(self, num1, num2):
self.num1 = num1
self.num2 = num2
def add(self):
return self.num1 + self.num2
# ... 省略减、乘、除等方法的代码
if name == 'main':
num1 = int(input("请输入第一个数:"))
num2 = int(input("请输入第二个数:"))
calculator = Calculator(num1, num2)
op = input("请选择要执行的操作:+-*/")
if op == "+":
print(calculator.add())
# ... 省略减、乘、除等分支判断的代码
else:
print("输入错误,请重新输入。")
- python exam answer
提示:以下是一个可能的考卷模板,包含基础的Python语言知识和应用能力的题目,仅供参考。
一、选择题(每题2分,共20分)
下列哪个不是Python的关键字?
A. and B. assert C. for D. switch
数字类型中舍弃小数部分,保留整数部分的函数是?
A. int() B. float() C. round() D. ceil()
下列哪个不是列表的方法?
A. append() B. pop() C. delete() D. insert()
下列哪个不是字典的特性?
A. 有序 B. 无序 C. 可嵌套 D. 键唯一
以下哪个语句可以用于Python中循环遍历?
A. while B. for-in C. do-while D. switch-case
以下哪个不是Python内置的模块?
A. os B. numpy C. re D. random
下面的代码会输出什么?
print(2**3//2)
A. 1 B. 2 C. 3 D. 4
如果想打印某个字符串的第一个字符,应该使用哪个语句?
A. print(mystr[0]) B. print("mystr[0]") C. print(mystr) D. print(mystr[1])
在Python中,如何定义一个元组?
A. (1,2,3) B. [1,2,3] C. {1,2,3} D. {'1':1,'2':2,'3':3}
如果想在Python中随机生成一个0-10之间的整数,应该调用哪个函数?
A. random.randint(0,10) B. random.choice(["B",'C',12])
C. random.random() D. random.shuffle(['A','B','C'])
二、填空题(每题2分,共10分)
以下语句的输出为:9
a = 5
b = 4
print(______)
在Python中如何进行文件读写?
可以使用______ 模块中的open()函数。
在Python中如何定义一个类?请简要说明。
使用class关键字来定义一个类,如下所示:
class MyClass:
def init(self, name):
self.name = name
下面这行代码的输出为:[1, 2, 3, 4, 5]
print(list(range(1,6)))
下面这个函数的功能是:打印所有小于n的素数。
def print_primes(n):
primes = []
for num in range(2, n+1):
for i in range(2, num):
if num i == 0:
break
else:
primes.append(num)
print(primes)
三、编程题(共70分)
编写一个Python程序,使用for循环输出1~20之间所有的奇数。(10分)
编写一个Python函数,接收一个字符串参数,输出该字符串的长度、第一个字符和最后一个字符。(15分)
编写一个Python程序,使用列表推导式生成一个自然数序列的平方序列,并打印该序列。(15分)
编写一个Python程序,循环计算一个整数序列的累积乘积,并输出结果。(20分)
编写一个Python类,实现一个计算器功能,其中需包含加减乘除四个运算方法,并实现异常处理。例如,当除数为0时,需输出提示信息。(30分)
(提示:可参考如下代码框架)
class Calculator:
def init(self, num1, num2):
self.num1 = num1
self.num2 = num2
def add(self):
return self.num1 + self.num2
# ... 省略减、乘、除等方法的代码
if name == 'main':
num1 = int(input("请输入第一个数:"))
num2 = int(input("请输入第二个数:"))
calculator = Calculator(num1, num2)
op = input("请选择要执行的操作:+-*/")
if op == "+":
print(calculator.add())
# ... 省略减、乘、除等分支判断的代码
else:
print("输入错误,请重新输入。")
- 100以内的奇数、偶数之和
sum1 = 0 sum2 = 0 for i in range(1, 101): # 表示从1到100范围 if i % 2 != 0: # 奇数判断 sum1 += i elif i % 2 == 0: # 偶数判断 sum2 += i print("100以内奇数的和为:", sum1) print("100以内偶数的和为:", sum2)
- 求从键盘输入的阶乘
n = 5 def jiechen(n): if n == 0: return 1 else: return n * jiechen(n - 1) print("{}的阶乘为{}".format(n, jiechen(n)))
-
1.查询emp表,显示薪水大于2000,且工作类别是MANAGER的雇员信息 2.查询emp表,显示年薪大于30000,工作类别不是MANAGER的雇员信息 3.查询emp表, 显示薪水在1500到3000之间,工作类别以“M”开头的雇员信息 4.查询emp表,显示佣金为空并且部门号为20或30的雇员信息 5.查询emp表,显示佣金不为空或者部门号为20的雇员信息,要求按照薪水降序排列 6.查询emp表,显示年薪大于30000工作类别不是MANAGER,且部门号不是10或40的雇员信息,要求按照雇员姓名进行排列 7.查询EMP表,输出每个部门的平均工资,并按部门编号降序排列. 8.查询EMP表,输出每个职位的平均工资,按平均工资升序排列. 9.查询EMP表,输出每个部门的各个职位的平均工资,并按部门编号升序、平均工资降序排序。 10.使用子查询,找出哪个部门下没有员工 11.使用子查询,找出那些工资低于所有部门的平均工资的员工 12.使用子查询,找出那些工资低于任意部门的平均工资的员工,比较一下与第2题输出的结果是否相同? 13.查询姓“刘”的老师的个数 14.查询各科成绩最高和最低的分:以如下形式显示:课程ID,最高分,最低分 15.查询每门课程被选修的学生数; 16.查询同名同姓学生名单,并统计同名人数 17.查询每门课程的平均成绩,结果按平均成绩升序排列,平均成绩相同时,按课程号降序排列 18.查询课程名称为“SSH”,且分数低于60 的学生姓名和分数 19.查询所有学生的选课情况 20.查询任何一门课程成绩在70 分以上的姓名、课程名称和分数; 21.查询不及格的课程,并按课程号从大到小排列 22.查询课程编号为c001 ,且课程成绩在80 分以上,学生的学号和姓名 23.查询不同课程,成绩相同的学生的学号、课程号、学生成绩 24.统计每门课程的学生选修人数(超过10 人的课程才统计)。要求输出课程号和选修人数,查询结果按人数降序排列,若人数相同,按课程号升序排列; 25.检索至少选修两门课程的学生学号 26.查询全部学生都选修的课程的课程号和课程名 27.检索“c003”课程分数小于60,按分数降序排列的同学学号 28.删除“s002”同学的“c001”课程的成绩 29.查询“c001”课程比“c002”课程成绩高的所有学生的学号 30.查询所有同学的学号、姓名、选课数、总成绩 31.查询没学过“谌燕”老师课的同学的学号、姓名 32.查询学过“c001”并且也学过编号“c002”课程的同学的学号、姓名 33.查询学过“谌燕”老师所教的所有课的同学的学号、姓名 34.查询课程编号“c002”的成绩比课程编号“c001”课程低的所有同学的学号、姓名 35.查询没有学全所有课的同学的学号、姓名; 36.查询平均成绩大于85 的所有学生的学号、姓名和平均成绩; 37.查询两门以上不及格课程的同学的学号及其平均成绩。
-
1、/etc目录的作用: 5、查看/proc文件的大小: 6、/mnt的作用: 7、查看命令的历史纪录: 8、清空终端输出记录也叫清屏命令: DOS中: 9、查看当前路径: 10、清除鼠标之前的内容: 11、帮助命令有哪些: 12、切换到root用户: 13、加-和不加-的区别: 14、vi命令查看文件内容中向下翻一页: 14、vi命令查看文件内容中向上翻一页: 19、Linux默认脚本语言: 20、xshell中用到的协议及端口号: 21、模拟终端工具: 22、保存不退出VI: 23、普通用户abc默认家目录: 24、Linux中查看IP地址: 27、查看主机名: 28、重启: 29、登录提示符:#: $:分别代表什么 1、详细查看文件列表信息 2. 隐藏文件以 开头 3、 增加用户账号并指定家目录: 4、 用户账号的配置文件的绝对路径: 5、vi 命令--> 编辑模式: 6、vi 撤销操作: 7、 vi重做(恢复至上一部撤销): 8、vi 强制退出: 9、定位到第二行: 10、vi 光标定位l 的作用: 11、vi 定位到最后一行的行首 12、vi 显示行号: 13、删除3行内容: 14、向上移动6行: 15、 vi 清空整个文件内容 : 16、 光标定位至本行行首: 17、复制粘贴3行内容: 18、复制并重命名文件夹: 19、若a重命名为b,而b文件夹存在,结果如何: 20、所有者所属组增加可执行权限: 21、永久修改主机名: 22、统计/root 子文件夹和子文件大小: 23、统计文本文件总共的字符数: 24、查看目录内容并使最新文件在最下面: 26、查找/root文件名以A开头 28、一个命令查看:进程、平均负载 cpu内存等信息: 29、重启网络服务: 30、查看防火墙运行状态: 31、递归创建文件夹 2、查看root目录大小: 3、永久解决乱码: 4、~ 代表: 5、swap 分区的作用: 8、向上查找int: 9、将/全部替换成# 10、动态打印后50行: 20、将a、b、c文件的内容并合并到abc.txt文件中 21、将test文件夹及子文件去除可执行权限 22、用户组所在的路径 23、/etc/shadow 25、修改时间: 26、临时修改主机名 27、查看22端口是否被打开: 28、修改test文件夹中所属者为u01,所属组为u0 29、添加1.sh文件的可执行权限 30、/sbin的作用 : 31、查看文件的类型: 32、test文件打包并输出: 33. 解压test.gz至目录root下命名为test.txt: 34、解开打包文件a.tgz至目录/tmp下: 35、 增加test文件的所属者和其他用户的可写可执行权限 36、动态查看tomcat日志文件: 37、查看操作系统的内存以MB为单位: 38、查看磁盘使用情况: 40、远程主机拷贝文件:
-
1、 字符串的基本使用 # 定义一个字符串 str1, 字符串的内容为 "hello world and wanhe and good girl and Python" # 在字符串str1中查找 字符串 and 的下标 # 在字符串str1中查找字符串 'good'的下标 # 将字符串str1中的 and 替换为 or # 将字符串 str1 按照 空白字符进行切割,保存到变量 list1 中 # 使用 _*_ 将 list1中的字符串进行连接 # 使用 逗号 将 list1中的字符串进行连接 2.练习对列表的增删改查统计的操作,具体操作如下: 1)声明一个列表,包含的数据有:["hello", "python", "wanhe", "hello", "girl"] 2)在列表中追加一个数据:"boy" 3)删除列表中的第二个数据 4)删除列表中的数据:"girl" 5)将列表中的第二个数据改为:"chaina" 6)在控制台打印列表中的第一个元素 7)统计列表中"hello"字符串出现的次数 8)在控制台打印列表的长度 9)循环遍历列表中的所有数据 3、计算字符串最后一个单词的长度,单词以空格隔开,字符串长度小于5000。(注:字符串末尾不以空格为结尾) 输入描述: 输入一行,代表要计算的字符串,非空,长度小于5000。 输出描述: 输出一个整数,表示输入字符串最后一个单词的长度。 例如: 输入: hello nowcoder 输出: 8
-
import os import secrets boundary = secrets.token_hex(8) def get_upload_send_data(boundary, file_full_name, *name_value): """ 根据指定的分隔符、文件路径和请求参数,生成相应的 multipart/form-data 数据,并返回字节数组形式的数据 """ data_before = "" data_after = "" # 连接文件流之前的各项名称值对 for i in range(0, len(name_value) - 2, 2): # 最后两对单独处理 data_before += "--%s\r\n" % boundary data_before += "Content-Disposition: form-data; name=\"%s\"\r\n" % name_value[i] data_before += "\r\n" data_before += "%s\r\n" % name_value[i + 1] # 连接文件流此项的 Content-Disposition data_before += "--%s\r\n" % boundary data_before += "Content-Disposition: form-data; name=\"%s\"; filename=\"%s\"\r\n" % (name_value[-2], name_value[-1]) #data_before += "Content-Type: text/plain\r\n\r\n" data_before += "Content-Type: tapplication/vnd.ms-excel.sheet.macroEnabled.12\r\n\r\n" # 文件流前面的字符串转为字节数组 data_before_bytes = data_before.encode("utf-8") # 文件转字节数组 with open(file_full_name, "rb") as f: file_bytes = f.read() # 文件流之后的字符串(一项) data_after_bytes = ("\r\n\r\n--%s--" % boundary).encode("utf-8") # 合并字节数组 byte_data = b"".join([data_before_bytes, file_bytes, data_after_bytes]) return byte_data file_full_name = "1.xlsm" name_value = [ "size", os.path.getsize('1.xlsm'), "file", "1.xlsm" ] send_data = get_upload_send_data(boundary, file_full_name, *name_value)
-
end

浙公网安备 33010602011771号