作业题
一 简答题
1.写出for循环的基本格式
# 遍历
for i in range(n):
pass
# 取数---左闭右开
for i in range(a,b):
pass
# 容器---重复执行的代码
for i in 容器:
重复执行的代码
2.简述break和continue的区别
break:终止循环
continue:结束本次循环,执行下一次循环
3.简述字符串查找和替换方法的使用
字符串.find(sub,始,末) #在字符串中查找str,有返回位置,没有返回-1
# sub是需要查找的内容
# 始是开始查找位置的下标,默认为0
# 末是终止查找位置的下标
字符串.replace(old,new,count) #替换字符串,不改变原字符串的内容,生成新字符串,返回替换后的新字符串
# old是需要被替换的字符
# new用于替换的字符
# count是替换次数,默认全部替换
4.简述字符串拆分和连接方法的使用
字符串.split(sep,count) # 按照sep格式进行切割,返回值:列表,表中数据是分割好的字符串
# sep是分割字符串的格式,默认为空白字符(\n \t 空格)
# count是需要分割的次数
字符串.join(列表) # 可以是字符串,元组,字典等,返回一个字符串
# 将字符串数据添加到列表每两个元素的中间
# 注:列表中元素必须为字符串类型
二 代码题
1.字符串下标
# 定义字符串abcdefg
str1='abcdefg'
# 打印下标为3的字符串
print(str1[3])
# 打印输出字符串中第二个字符
print(str1[1])
# 打印输出最后一个字符
print(str1[-1])
# 打印输出倒数第二个字符
print(str1[-2])
# 打印输出字符串的长度(元素的个数)
print(len(str1))
2.字符串切片
# 现有ABCDEFGHIJ字符串
# 截取下标2~5之间的字符串
print(str1[2:6])
# 截取2~末尾的字符串
print(str1[2:])
# 截取从开始~5(包含)的字符串
print(str1[:6])
# 截取2~末尾(不包含的字符串)
print(str1[2:-1])
# 截取字符串末尾两个字符
print(str1[-2:])
# 字符串逆置
print(str1[::-1])
3.列表练习
# 定义一个空列表
list1=[]
list1=list() # 实例化
# 定义一个列表,包含18,'小王','171.4',True
list1=[18,'小王',171.4,True]
print(list1)
# 输出列表中的个数
print(len(list1))
# 输出列表中第二个数据
print(list1[1])
# 输出列表中最后一个数据
print(list1[-1])
4.字符串常用方法使用
# 定义一个字符串str1,字符串内容为"hello world and itcast and itheman and python"
str1="hello world and itcast and itheman and python"
# 字符串中查找and的下标
str2=str1.find('and')
print(str2)
# 字符串中查找'good'的下标
num=str1.find('good')
print(num)
# 字符串中and替换为or
str2=str1.replace('and','or')
print(str2)
# 字符串按照空白字符进行切割,保存在list1中
list1=str1.split()
print(list1)
# 使用_*_将list1中的字符串进行连接
str3='_*_'.join(list1)
print(str3)
5.列表添加数据
# 定义一个空列表mylist
mylist=[]
print(mylist)
# 向列表中添加数据秦
mylist.append("隋")
print(mylist)
# 向尾部添加数据汉
mylist.append("唐")
print(mylist)
# 在下标为1的位置添加汉
mylist.insert(1,'元')
print(mylist)
# 定义一个列表mylist2,包含数据明清
mylist2=['明','清']
print(mylist2)
# 将mylist2中的元素逐个加入mylist中
mylist.extend(mylist2)
print(mylist)
6.字符串遍历
# 用户输入一个字符串,遍历当前字符串并打印字符,遇见q跳出循环,如果遇见""(空格)则跳过不输出
str2=input("请输入字符串:")
for i in str2:
# 如果是q,循环终止
if i=='q':
break
elif i==' ':
# 如果是空格,跳过输出
continue
print(i)
7.过7
# 过7游戏,在数字1-99之间,数字包含7或是7的倍数输出过,否则输出具体的数字
i=1
for i in range(1,100):
# 把i转化为字符串类型,使用find方法查找7,find找到返回下标,所以!=-1
if i%10==7 or (str(i).find('7')!=-1):
# 或使用in判断是否存在 if i%10==7 or '7' in str(i):
print("过...")
else:
print(i)
8.列表操作
# 有一个列表,判断列表中每一个元素是否以s或e收尾,如果是,则将其放入一个新列表中,最后输出这个列表
list1=['red','apples','orange','pink','bananas','blue','black','white']
# 用来存放e或s结尾的字符串
newlist=[]
for i in list1: # i是列表中的数据
# 判断列表中每个元素是否以s或e结尾
if i[-1]=='e' or i[-1]=='s':
newlist.append(i)
print(newlist)
9.随机抽取
# 使用input输入五个人的名字,并随即输出一个人的名字并打印
import random
# 定义存储学生的信息
list1=[]
for i in range(5):
name=input("请输入名字:")
# 将输入的名字存入列表
list1.append(name)
# 随机数产生下标,能取到边界值
num=random.randint(0,4)
# 打印抽到的姓名
print(list1[num])
10.1-100之间数字和
sum=0 #注:一般不建议使用sum,sum是python中的函数
for i in range(0,100):
if i<100:
i+=1
sum+=i
print(sum)
-------或--------
num = 0
for i in range(1,101):
# 省略i+=1,for会自动取
num+=i
print(num)
作业题
一 简答题
1.如何向列表中添加数据?
# 列表尾部添加
list.append(数据)
# 指定位置下标添加
list.insert(下标,数据)
# 列表合并
list.extend(列表)
2.如何删除列表中的数据
# 根据下标删除
list.pop(下标)
# 根据数据删除
list.remove(数据)
# 清空列表
list.clear()
3.如何对列表中的数据进行排序操作
# 列表升序
list.sort()
# 列表降序
list.sort(reverse=True
4.如何定义元组及元组的特点
1.特点
元组数据不可更改,可存放任意类型的数据,使用小括号定义
2.类实例化定义
元组名=tuple()
元组名=tuple(列表/字符串)
3.字面定义
元组名=()
元组名=(数据,) #注:单个数据在元组需加,不然是int型
5.如何定义字典
1.类实例化定义
字典名=dict{}
字典名=dict{变量=数据,数据=变量,...}
2.字面量定义
dict={}
dict={key:value,key:value...}
6.如何添加和修改字典中的数据
字典名[key]=数据值
7.如何访问字典中的数据
# 方法一
字典名[key] # 不存在报错
# 方式二
字典名.get(key) # value默认不写为None,不存在返回None
8.如何删除字典中的数据
# 使用key删除
del 字典[key]
字典.pop(key)
9.如何遍历字典中的键,值和键值对?
# 遍历字典的键(key)
for i in 字典:
pass
for i in 字典.keys():
pass
# 遍历字典的值(value)
for 变量 in 字典.values():
pass
# 遍历字典的键值对(key,value)
for i,j in 字典.items():
pass
二 代码题
1.定义一个列表如list1=[“hello”,“python”,“itcast”,“hello”],练习对列表进行增删改查操作
- 增:使用append()方法添加数据demo
- 删:使用pop()方法删除第一个数据,使用remove()方法删除数据"hello"
- 改:修改列表中第一个数据为"world"
- 查:使用index()方法获取数据world的下标值,使用下表索引为2的数据
- 统计:使用count()方法统计列表中hello的个数
- 统计列表中元素的个数(求列表的长度)
# 定义
list1=["hello","python","itcast","hello"]
# 添加数据
list1.append('demo')
# pop删除第一个数据,remove删除"hello"
list1.pop(0)
list1.remove('hello')
# 修改
list1[1]="world"
# 获取下标值
locat=list1.index("world")
print(locat)
print(list1[2])
# 统计
num=list1.count("hello")
print(num)
# 统计元素个数
print(len(list1))
2.通过input输入3个人的信息,每个人有名字和年龄,将信息存入字典中,并将字典存入列表,遍历列表,打印每个人的信息,打印格式如下:
张三 20
李四 22
王五 23
列表格式如下
[{‘name’:xx,‘age’:oo},{},{}]
# 定义列表,保存所有学生信息
name_list=[]
# 书写循环,获取信息
i=0
while i<3:
name=input("请输入姓名:")
age=input("请输入年龄:")
# name和age存入列表
my_dict={'name':name,'age':age}
# 将学生信息存入列表
name_list.append(my_dict)
print('保存成功')
i+=1
# 遍历列表--item是字典
for item in name_list:
print(item['name'],item['age'])
3.定义函数my_sum,求1~100之间的偶数的和
def my_sum():
num1=0
for j in range(1,101):
if j%2==0:
num1+=j
print(num1)
my_sum()
4.定义一个函数run,函数的功能是输出"我在跑步",以及"管住嘴,迈开腿",并调用此函数
def run():
print("我在跑步")
print("管住嘴,迈开腿")
run()
5.有如下列表:
my_list=[{‘id’:1,‘money’:10},{‘id’:2,‘money’:20},{‘id’:3,‘money’:30},{‘id’:4,‘money’:40}]
要求:定义一个函数func,功能如下
1.如果字典中ID的值为奇数,则对money的值增加20
2.如果字典中ID的值为偶数,则对money的值增加10
3.打印输出
my_list=[{'id':1,'money':10},{'id':2,'money':20},{'id':3,'money':30},{'id':4,'money':40}]
def func():
for i in my_list:
if i.get('id')%2==1:
i['money']=i.get('money')+20
else:
i['money']=i.get('money')+10
print(my_list)
func() # [{'id': 1, 'money': 30}, {'id': 2, 'money': 30}, {'id': 3, 'money': 50}, {'id': 4, 'money': 50}]
作业题
一 简答题
1.定义一个匿名函数:可以计算两个数字的和
lambda x,y : x+y
2.描述类的组成部分
类 名属性 方法
3.定义类和创造对象的语法
# 定义类
class 类名:
def 方法名(self):
# 创造对象方法
变量=类名()
4.简述对self的理解
self是形参,传参无需手动,会将该方法的对象作为实参值传递
self是对象自己
5.对__init__方法的理解
创建对象后自动调用,给对象添加属性的,存在self之外的形参,创建对象时必须传递实参值
6.对__str__方法的理解
print(对象) 的时候会自动调用,必须返回一个字符串
二 代码题
# 存在如下列表,对列表中的字典按照年龄大小排序
list1=[{'name':'d','age':19},{'name':'b','age':16},{'name':'a','age':16},{'name':'d','age':20}]
list1.sort(key=lambda x : x['age'],reverse=True)
print(list1)
2.小明小美都爱跑步,小明体重75.0kg,小美体重45.0kg,每次跑步都会减少0.5kg,每次吃东西都会增加1.0kg
class Person:
# 定义属性
def __init__(self,name,weight):
self.name=name
self.weight=weight
# 获取属性信息
def __str__(self):
return f"姓名:{self.name},体重:{self.weight}kg"
#定义吃的方法
def eat(self):
print(f'{self.name}吃东西了,体重增加了')
self.weight+=1.0
#定义跑步的方法
def run(self):
print(f'{self.name}跑步了5km,体重减少了')
# 减体重,即修改属性
self.weight-=0.5
xm=Person('小明',75.0)
mm=Person('小美',45.0)
print(xm)
# 调用方法
xm.run()
xm.eat()
print(xm)
print(mm)
mm.run()
mm.eat()
print(mm)
3.定义一个学生类
# 定义一个学生类(Student):
class Student:
# 1.包含属性 姓名 name,年龄age
def __init__(self,name,age):
self.name=name
self.age=age
# 获取属性信息
def __str__(self):
return f"姓名:{self.name},年龄:{self.age}岁"
# 吃饭的方法eat,在方法中输出XX要吃饭,xx为学生具体的姓名
def eat(self):
print(f'{self.name}要吃饭')
# 睡觉的方法sleep,输出xx要睡觉,xx为学生具体的名字
def sleep(self):
print(f'{self.name}要睡觉')
# 过年的方法year,年龄各增加一岁
def year(self):
self.age+=1
# 创建两个对象,分别调用吃饭和睡觉过年的方法
xm=Student('小明',18)
print(xm)
xm.eat()
xm.sleep()
xm.year()
print(xm)
xh=Student('小红',17)
print(xh)
xh.eat()
xh.sleep()
xh.year()
print(xh)
4.电脑类
# 定义一个电脑类
class Computer:
# 属性,电脑有品牌(brand),有价格(price),播放电影(play_movie)
def __init__(self,brand,price):
self.brand=brand
self.price=price
# 调用方法
def play_movie(self,movie):
print(f"{self.brand}播放电影{movie}")
# 创建两个对象
mi=Computer('小米电脑',4999)
mac=Computer('苹果电脑',16999)
mi.play_movie('葫芦娃')
mac.play_movie('变形金刚')
作业题
一 简答题
1.简述继承的语法
class 类B(类A): # 类B继承类A
pass
2.为什么要重写,什么是重写,重写后如何调用父类的方法
# 为什么要重写
父类方法不满足子类对象的需求
# 什么是重写
子类实现了和父类同名的机会
# 重写后如何调用父类的方法
super().方法名()
二 代码题
1.获取最高分玩家的名字
import random
# 定义一个游戏类Game,包含属性玩家名字(name)
class Game:
topscore=0
# 获取最高分玩家的名字
topscoreplayer=''
def __init__(self,name):
self.name=name
# 定义showhelp方法显示游戏的帮助信息,输出:这是游戏的帮助信息
def showhelp(self):
print('这是游戏的帮助信息')
# 定义方法showtopscore打印输出游戏的最高分
def showtopscore(self):
print(f'最高分玩家为:{Game.topscoreplayer},分数:{Game.topscore}')
# 定义startgame开始游戏
def startgame(self):
print(f'{self.name} 开始一局游戏',end ='')
score = random.randint(10,100)
print(f'本次游戏得分为 {score}')
# 本次得分
if score>Game.topscore:
# 修改最高分
Game.topscore=score
# 修改最高分玩家名字
Game.topscoreplayer=self.name
xw=Game('小王')
xw.startgame()
xw.showtopscore()
xh=Game('小红')
xh.startgame()
xh.showtopscore()
xl=Game('小李')
xl.startgame()
xl.showtopscore()
xz=Game('小张')
xz.startgame()
xz.showtopscore()
# 定义Animal类,具有吃肉eat的方法,喝drink方法,睡觉sleep方法
class Animal:
def eat(self):
print("动物能吃肉")
def drink(self):
print("动物能喝水")
def sleep(self):
print("动物能睡觉")
# 定义狗继承了动物类,具有汪汪叫bark的方法
class Dog(Animal):
def bark(self):
print("汪汪叫...")
# 创建子类对象
dog1=Dog()
# 狗去调用吃的方法
dog1.eat()
# 狗去调用喝的方法
dog1.drink()
dog1.bark()
一 简答题
1.文件操作的步骤是
1> 打开文件
2> 需读/写文件
3>关闭文件
2.描述打开文件的函数以及参数表示的意思?
打开文件:将文件从硬盘中取出读取到内存中
open("文件名字","rwa",encoding='utf-8')
> 文件名字,类型是字符串,可以是绝对或相对路径(推荐)
> rwa是缺省参数表示文件打开的方式,只读只写和追加打开,二进制文件+b
> encoding是编码方式,gbk是将汉字转为2个二进制字节,utf-8是转为3个字节的二进制
> 返回值是文件对象
3.如何读取json文件?
# 1. 导入json包
import json
# 2.打开文件
with open(文件名,'r',encoding='utf-8') as f:
# 3.从文件中读取
result =json.load(f)
二 代码
1.使用代码在test.txt中写入"wow!beautiful!"
使用代码读取test.txt的文件并打印
# 打开文件
f=open('test.txt','w',encoding='utf-8')
# 写文件
f.write("wow!beautiful!")
# 关闭文件
f.close()
# 打开文件
f=open('test.txt',encoding='utf-8')
# 读文件
data=f.read()
print(data) # wow!beautiful!
f.close()
# 1> 使用代码在文件a.txt 中写入以下内容: 张三,李四,王五,赵六
f=open('a.txt','w',encoding='utf-8')
f.write("张三,李四,王五,赵六")
---
with open('a.txt','w',encoding='utf-8') as f:
f.write("张三,李四,王五,赵六")
# 2> 使用代码读取a.txt文件中的内容,使用字符串的方法将每个名字存入列表mulist中,打印列表
with open('a.txt','r',encoding='utf-8') as f:
buf = f.read()
mylist=buf.split(',')
print(mylist)
3.将代码存入test.json文件中
my_dict={'name':'isacc','age':18,'like':['学习','游戏']}
import json
my_dict={'name':'isacc','age':18,'like':['学习','游戏']}
# 2.打开文件
with open('test.json','w',encoding='utf-8') as f:
result=json.dump(my_dict,f,ensure_ascii=False)
4.将以下信息存入info.json中,并使用代码读取姓名和爱好
我叫小明,今年18岁,性别男,爱好听歌,游戏,购物,吃饭,睡觉,我的地址为国家中国,城市北京,街道王府井
{
"name": "小明",
"age": 18,
"isMen": true,
"like": [
"听歌",
"游戏",
"购物",
"睡觉",
"吃饭"
],
"address": {
"country": "中国",
"city": "上海",
"block":"王府井"
}
}
# 读取
import json
with open('info.json','r',encoding='utf-8') as f:
info=json.load(f)
print(info['name'])
print(info['like'])
import json
import random
# 4.将最大的五个数字存入data1.txt中
# 2.将数字保存到data.txt中
with open('data.txt','w',encoding='utf-8') as f:
# 1.使用随机数产生10个1-20之间的数字
for i in range(10):
num=random.randint(1,20)
f.write(f'{num},') # 数字间隔开
# 3.读取data.txt中内容,按照数字大小进行降序排列
with open('data.txt',encoding='utf-8') as f:
data=f.read() # 内容是字符串
# 读取数据之后,最后多一个去掉
data=data[:-1]
# 字典转换成列表
datalist=data.split(',')
# 4.列表中的数据都是字符串,需要转为int型比较
newlist=[]
for i in datalist:
newlist.append(int(i))
# 对列表中的数据列表 降序
newlist.sort(reverse=True)
print(newlist)
# 取前5个数据
print(newlist[:5])
import json
import random
import json
import random
mylist=[]
for i in range(10):
num=random.randint(1,20)
mylist.append(num)
# 写文件
with open('data.json','w',encoding='utf-8') as f:
f.write(str(mylist))<====>json.dump(mylist,f)
# 读文件
with open('data.json',encoding='utf-8') as f:
datalist=json.load(f) # 直接得到列表,列表中数据也是int
# 排序
datalist.sort(reverse=True)
print(datalist)
print(datalist[:5])
6.实现需求
# 获取用户输入的数字
a=input("请输入数字:")
# 判断数字是否为整数
try:
num=int(a)
# 如果不是整数,提示输入错误
except Exception as e:
print('输入错误',e)
# 如果是整数没发生异常,要继续判断是奇数还是偶数
else:
if num%2==0:
print('偶数')
else:
print('奇数')
finally:
print('程序运行结束')
# 1.获取用户输入的数字
num=input("请输入数字:")
# 2.判断数字是否为整数
if num.isdigit():
#类型转换
num=int(num)
if num%2==0:
print('偶数')
else:
print('奇数')
# 3.如果不是整数,提示输入错误
else:
print("输入错误")
print('程序运行结束')
一 简答题
1.导入模块的语法
import 模块名
# 使用模块中的内容
模块名.工具名
eg:
import json
import random
random.randint(a,b)
json.load()
json.dump()
from 模块化 import * # 将模块中所有的内容都导入
from random import *
from json import *
randint(a,b)
load()
dump()
from 模块化 import 工具名
# 使用
工具名 # 函数和类需要加括号
eg:
from random import randint
from json import load,dump
randint(a,b)
load()
dump()
2.定义一个模块calc.py,在模块中定义一个函数add(),函数的作用是求两个数的和,重新定义一个代码文件,在这个代码文件中,使用calc.py调用add函数对两个数字进行求和运算
def add(a,b):
return a+b
import calc
print(calc.add(1,2))
# 在文件中定义一个动物类,具有实例属性name和age,类属性class_name
# 类属性值为动物类和play的方法,在方法中输出愉快的玩耍
# 新建一个代码文件,定义一个猫类,继承动物类,在play方法中添加以下输出"玩累了,等待铲屎官的投喂中..."
class Animal:
# 定义类属性
class_name='动物类'
def __init__(self,name,age):
self.name=name
self.age=age
def play(self):
print("快乐的玩耍")
import tools
class Cat(tools.Animal):
def play(self):
# 扩展
super().play()
print("玩累了,等待铲屎官的投喂中...")
cat=Cat('小花猫',2)
cat.play()
# 完成对login函数的测试
# 假定对某网站的登陆进行测试
def login(username,password):
if username=='admin' and password=='123456':
return '登录成功'
else:
return '登录失败'
# 1.设计测试数据
# 正确的用户名和密码:admin,123456,登陆成功
# 1> 导包
import unittest
from tools import login
class TestLogin(unittest.TestCase):
def test_username_password_ok(self):
if login('admin','123456')=='登录成功':
print('pass')
else:
print('fail')
# 错误的用户名:root,123456,登陆失败
def test_username_error(self):
if login('root','123456')=='登录失败':
print('pass')
else:
print('fail')
# 错误的密码:admin,123123,登录失败
def test_password_error(self):
if login('admin','123123')=='登录失败':
print('pass')
else:
print('fail')
# 错误的用户名和密码:aaa,123123,登陆失败
def test_password_uername_error(self):
if login('aaa','123123')=='登录失败':
print('pass')
else:
print('fail')