作业1:学生管理系统
|-- 进行持久化
|-- 将密码加密(hashlib)
作业2:判断一个整数是奇数还是偶数,至少有两种方式实现(位运算已经讲解的话)
方法一:直接通过取余
a = int(input("输入一个数"))
if a % 2 ==0:
print("偶数")
else:print('奇数')
方法二:通过与运算,二进制最后一位是1的是奇数,1与1与是1反之0是偶数
if a & 1 ==0:
print("偶数")
else:print("奇数")作业3:猜数字游戏(使用random模块完成)
电脑随机一个范围内的数,用户输入数据判断,
如果数大了,提供”数大了“
成功之后,加上用户是否继续功能
import random
def A (n):
i = random.randint(0,n)
while True:
num = int(input('请输入一个数'))
if num == i:
print("猜对了")
choice = input("输入n继续游戏,其他键退出游戏")
if choice == "n":
i = random.randint(0,n)
else:
break
elif num > i:
print("猜大了")
else:
print("猜小了")
print("正确数字是",i)
A(int(input("请输入一个范围")))作业4:猜拳游戏:石头、剪刀、布的游戏
import random
def A ():
b = random.randint(0,2)
a = int(input("请输入0石头,1剪刀,2布"))
if (a == 0 and b == 1) or (a == 1 and b == 2) or (a == 2 and b == 0):
print("你赢了!\n")
elif (a == 0 and b == 2) or (a == 1 and b ==0) or (a == 2 and b == 1):
print("你输了")
else:print("平局")
print(b)
A()作业5:鸡兔同笼,从上面看有35个头,从下面看有94只脚,请问鸡有几只,兔有几只?
numt = 35
numj = 94
for x in range(1,numt):
y = numt - x
if 2*x + 4*y == numj:
print("鸡有",x)
print("兔子有",y)作业6:编程求一个四位自然数ABCD,它乘以A后变成DCBA
for i in range(1000, 10000):
D = (i % 1000) % 100 % 10
C = (i % 1000) % 100 // 10
B = (i % 1000) // 100
A = i // 1000
# DCBA的计算方式
change = D * 1000 + C * 100 + B * 10 + A
if (i * A) == change:
print(i, end="\t")作业7:打印如下图案:
(1)
*
**
***
****
*****
******
(2)
*
***
*****
*******
*********
(3)
*********
*******
*****
***
*
(4)
*
***
*****
*******
*********
*******
*****
***
*
(5)
*
* *
* *
* *
* *
* *
* *
* *
*
(6)
*
***
* * *
* * *
*********
* * *
* * *
***
*
(1)
i = 0
num = int(input("请输入层数"))
while i < num :
a = 0
while a <= i:
print("*",end="")
a = a + 1
print()
i = i + 1(2)
num = int(input("请输入层数"))
i = 1
while i <= num:
num_space = num - i
j = 1
while j <= num_space:
print("", end=" ")
j = j + 1
a = 2 * i - 1
print("*" * a)
i = i + 1使用面向对象定义一个栈(Stack)
class Stack:
def __init__(self):
self.stack = []
def push(self, value):
self.stack.append(value)
return True
def pop(self): # 出栈方法
# 判断栈是否为空
if self.stack:
# 获取出栈元素 并返回
item = self.stack.pop()
return item
else:
return False
def top(self): # 查看栈顶元素方法
if self.stack:
return self.stack[-1]
else:
return False
def length(self): # 查看栈长度方法
return len(self.stack)
def view(self): # 查看栈元素方法
return ','.join(self.stack)
s = Stack()
s.push('1')
s.push('2')
s.push('3') # 入栈三个元素1,2,3
item = s.pop() # 出栈一个元素
print(s.top()) # 查看栈顶元素
print(s.length()) # 查看栈长度
print(s.view()) # 查看栈元素使用面向对象顶一个队列(Queue)
class Queue(object):
def __init__(self):
self.queue = []
def is_empty(self):
return self.queue == []
def enqueue(self, item):
self.queue.append(item)
print("入队元素为%s,入队成功" % (item))
def dequeue(self, item):
if self.is_empty():
# raise抛出异常
raise Exception("队列为空,不能出队")
else:
item = self.queue.pop()
print("出队元素为%s,出队成功" % (item))
def first(self):
if self.is_empty():
# raise抛出异常
raise Exception("队列为空,无队尾元素")
else:
return self.queue[-1]
def __len__(self):
# 魔术方法,当执行len(Q)时会自动执行该魔术方法
return len(self.queue)
q = Queue()
for item in range(10):
q.enqueue(item)
for item in range(2):
q.dequeue(item)
print("当前队列长度为: ", len(q))
print("当前队列是否为空?", q.is_empty())
print(q.first())
打印输出标准水仙花数,输出这些水仙花数
for i in range(1,10):
for o in range(10):
for p in range(10):
if i ** 3 + o ** 3 + p ** 3 == i * 100 + o * 10 + p:
print(i * 100 + o * 10 + p )
验证:任意一个大于9的整数减去它的各位数字之和所得的差,一定能被9整除.
if i > 9 and i < 100: #(两位数)
a = i // 10
b = i % 10
i = a * 10 + b * 1
if (i-(a+b)) % 9 == 0:
print("验证成功")
else:print("验证失败")
if i > 99 and i < 1000: #(三位数)
a = i // 100
b = (i % 100) // 10
c = (i % 100) % 10
if (i-(a+b+c)) % 9 == 0:
print("验证成功")
else:print("验证失败")
有一种最简真分数,它们的分子与分母的乘积都是140,把
所有这样的真分数从小到大打印出来
for i in range(1,11): #分子不大于10
for j in range(i+1,141): #分母
if i * j == 140:
print(f"{i}/{j}")某数被80除所得的商,不但是7的倍数,而且用2,3,4,5,6去
除余数都是1,求这 个自然数.
num = 0
for i in range(1,1000):
shang = 80 // i
yushu = i % 80
a = i % 2
b = i % 3
c = i % 4
d = i % 5
e = i % 6
if shang % 7 == 0 and a == 1 and b == 1 and c == 1 and d == 1 and e ==1:
print(i)
有一堆硬币,每次只能拿一个或者两个,求最少多少次可以拿完硬币
[10, 8, 5, 3, 27, 99]
num = 0
a = [10, 8, 5, 3, 27, 99]
for i in a :
b = i % 2
if b == 0 :
num = i //2 + num
else:
num = i //2 + 1 + num
print(f"最少需要{num}次")
编程求出满足以下条件的三位数:它除以11所得的商等于它各位数字之和
for i in range(100,1000):
a = i // 100
b = (i % 100) // 10
c = (i % 100) % 10
if i / 11 == (a + b + c):
print(i)
给定一个正整数N,找出1到N(含)之间所有质数的总和
求 a+aa+aaa+.......+aaaaaaaaa=?其中a为1至9之中的一个数,项数也要可以指定。
给定一个非负整数数组A,将该数组中的所有偶数都放在奇数元素之前
def odd_(num):
for i in range(len(num) - 1):
# k = 0
# for j in(i+1, len(num)):
if num[i] % 2 == 0 and num[i + 1] % 2 == 1: # 前偶数,后奇数就交换
num[i], num[i + 1] = num[i + 1], num[i]
while i > 0:
if num[i] % 2 == 1 and num[i - 1] % 2 == 0:
num[i], num[i - 1] = num[i - 1], num[i]
i -= 1
return num
if __name__ == "__main__":
target = 2 # int(input())
# arr = list(map(int, input().split()))
arr = [1, 2, 3, 4, 3]
# repeat_num(target, arr)
print(odd_(arr))
将10进制数据转换为二进制,并且统计其中的0和1的数量
给定一个数组,已知数组中的元素都是成对出现,现在数组中只有一个元素没有成对,请找出这个元素。
如[1,3,1,2,2,8,8],是3
求第n项的斐波那契数列的值(n>=1)
def Fibonacci(n):
if n == 1:
return 1
elif n == 0:
return 0
elif n >= 2 :
return Fibonacci(n-1)+Fibonacci(n-2)
print(Fibonacci(10))你需要上楼梯,一次只能上一个台阶或者两个台阶,当到达第n个台阶时,共有多少种走法
小明考试非常好,妈妈为了奖励小明,给一对刚刚出生的兔子,
兔子可以经过四个月,可以长大称为成年的兔子,可以生育新的兔子,
假设成年兔子,每个月生一对小兔子,问,第n个月共有多少对兔子(加上兔子不死)
给定一个包含n+1个整数的数组nums,其数字在1到n之间(包含1和n),
可知至少存在一个重复的整数,假设只有一个重复的整数,请找出这个重复的数
版权声明:本文为m0_59520765原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。