目录
前言
系列文章列表
网安之python基础学习作业(1)
思维导图
1,网安之python基础学习作业(2)
1.1,作业一:
1.1.1,题目
1.1.2,题解
1.2,作业二:
1.2,1,题目
1.2.2,题解
2,网安之python基础学习作业(3)
2.1,作业1
2.1.1,题目
2.1.1,题目
2.2,作业2
2.2.1,题目
2.2.2,题解
2.3,作业3
2.3.1,题目
2.3.1,题目
3,总结
最近也是比较忙了,要学习很多知识,做的作业,相对来说,解释方面就比较潦草一点了.
不过思考题目,确实是一道比较有意思的题目编写一个函数,要求随机从获取一张扑克牌,除大小王以外其余A-K都具有四种不同的花色,花色共有【♠ ♥ ♣ ♦】四种
题目:提示用户输入姓名,并且接收用户输入在控制台的姓名,然后选择武技后将选择的武技打印出来
- input() 可以从控制台去输入值
- for 的语法格式:
for 迭代 in range/数组名:
代码块 (前面注意要进行缩进)
3.if的语法格式:
if 判断段条件:
代码块
总结一下:
1.这里使用了第一次使用for循环是为了将所有的武技的编号和武技名进行打印出来,其中为了符合大多打家平常打游戏都是从1开始,所以进行了更改
2.然后使用了for循环和if进行判断,当相等时,大印出武技名
x = input("请输入您的大名:")
print("您可以选择一门武技:")
print("武技如下:")
skill = ["一阳指", "鬼牌", "升龙掌", "葵花"]
for i in range(0, len(skill)):
print(i + 1, skill[i])
y = int(input("请选择您的绝技:")) # 将输入数据的类型改为int类型
for j in range(0, len(skill)):
if j == y - 1:
print("您选择了武技:")
print(skill[j])
break;
这么看的话,我们其实加上random模块的随机选择,比如说选择爆率等等,我们可以很容易使用python去做一款文字形游戏
题目2:pets = ['dog', 'cat', 'dog', 'goldfish', 'cat', 'rabbit', 'cat'] 如何删除所有值为cat的元素
总结一下:
这里无非就是把列表中的cat元素删除,那么我们只需要进行遍历列表,然后删除cat(不如说是不去选择cat这个元素,就可以了)
方法一;
我使用了列表推导式:
语法格式:
数组名 = [迭代数 for 迭代数 in 数组名/range() 判断条件if ]
如果不清楚或是遗忘了列表推导式,可以看之前自己写的这篇文章
Python进阶语法之推导式http://t.csdn.cn/23Zie
pets = ['dog', 'cat', 'dog', 'goldfish', 'cat', 'rabbit', 'cat']
print("原数组如下:")
print(pets)
# print("删除后的数组如下")
#方法一:
# 这里我使用了列表推导式
new_pets=[pet for pet in pets if pet !='cat']
print(new_pets)
# 方法二
new_pets = []
for pet in pets:
if pet !='cat':
new_pets.append(pet)
print(new_pets)
一、编写一个函数,判断唯一的整数参数是奇数还是偶数
知识点:方法定义+调用、条件结构(if)
这里就是定义了一个判断函数,然后进行调用,注意传入时需要注意的是传入的参数的类型
def even(num):
if(num % 2 ==0 ):
print("num是偶数!!!")
else:
print("num是奇数!!!")
even(int(input("请输入一个数字:"))) # 注意传入数字时,需要传入类型一致的值
二、编写一个函数,参数为列表,求出列表所有元素的合,并且返回
知识点:方法返回值、循环结构(for)
这里我们使用了列表推导式来创建数组,然后我们定义了一个总和函数.
注意python传入参数时,不需要进行定义,我们在是用*时,*代表传入的参数不固定是任意值.
num = [i for i in range(10)] # 列表推导式
def sum(num):
j = 0
for i in num:
j = i + j
return j
a = sum(num) # 传入数组不需要添加任何符号
print(f'数组{num}的总和是: {a}')
思考题: 编写一个函数,要求随机从获取一张扑克牌,除大小王以外其余A-K都具有四种不同的花色,花色共有【♠ ♥ ♣ ♦】四种
总结一下,主要就是,定义数组,然后传入参数,进行循环,将重复性的花色和数字存入新的数组,然后,使用random模块进行随机选择,类似于随机抽卡游戏
import random
def random_get():
num = [] # 定义一个空数组,用来存放,第一次循环得到的没有花色的牌
new_num = [] # 用来存放含有花色的牌
char = ['A','J','Q','K',] # 定义含有四种英文字符
flower = ['♠', '♥', '♣', '♦', ] # 定义一个含有四种花色的数组
new_flower = [] # 定义一个空数组,用来存放13种牌的所有花色
i=0
while(i<4):
# 通过循环和for循环将数字和字符传入四次
for j in range(2,11):
num.append(j)
for k in char:
num.append(k)
i = i+1
i = 0
while(i<13):
for l in flower:
new_flower.append(l)
i = i+1
# print(num) # 进行查看,是否有错误
# print(new_flower) # 测试花色是否是52个
for i,j in zip(num,new_flower):
a = str(i) + j # 要进行字符和数字拼接,需要进行转换
new_num.append(a)
# print(new_num) 测试是否是52张含有花色的牌
# 最后将大小王也加入到数组中
new_num.append('大王')
new_num.append('小王')
return random.choice(new_num) # 随机进行选择
a = random_get() # 调用函数将随机获得的牌进行返回
print(f'你随机获得的牌是:\n{a}')
本章是对自己学习python的一次复习吧,通过作业的练习我收获了很多,.在练习其中我忽略了传入参数的类型,以及在使用时,对于函数的数组传入知识点的遗忘,有方法和敲出来其实有很大的差别
每日一言
永远不要低估你的潜能,永远不要放弃你的梦想。
如果我的学习笔记对你有用,不妨点赞收藏一下,感谢你的支持,当然也欢迎大佬给我一下建议或是对笔记中的不足进行补充,对我学习大有帮助,谢谢。