课后题python

作业题

一 简答题

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')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值