程序地带

Python助力期末


本资料由 全栈自学社区 提供 更多精彩详请关注公众号
1 编程输出斐波那契数列的前若干项。即根据用户输入的正整数,

输出数列的各项,如输入正整数5,则输出斐波那契数列的前五项:1,1,2,3,5


方法一
inputNum = int(input("你需要几项?"))
# 第一和第二项
n1 = 0
n2 = 1
count = 2
# 判断输入的值是否合法
if inputNum <= 0:
print("请输入一个正整数。")
elif inputNum == 1:
print("斐波那契数列:")
print(n1)
else:
print("斐波那契数列:")
print(n1, ",", n2, end=" , ")
while count < inputNum:
nth = n1 + n2
print(nth, end=" , ")
# 更新值
n1 = n2
n2 = nth
count += 1
方法二
def fibo(n):
if n <= 1:
return n
else:
return fibo(n - 1) + fibo(n - 2)
num = int(input("请输入列出的斐波那契数列到第几项: "))
for i in range(num):
print('%s' % (fibo(i)), end=' ')
2 用函数

实现最大公约数算法和最小公倍数算法,并且编写测试程序测试这两个算法。


2.1
ToN = int(input('ToN='))
ToM = int(input('ToM='))
toA = ToN
toB = ToM
p = 0
temp = 0
r = 0
if ToN < ToM:
temp = ToN
ToN = ToM
ToM = temp
p = ToN * ToM
while ToM != 0:
r = ToN % ToM
ToN = ToM
ToM = r
print("(%s,%s)最大公约数是: %s" % (str(toA), str(toB), str(ToN)))
print('(%s,%s)最小公倍数是: %s' % (str(toA), str(toB), str(p // ToN)))
2.2更相减损法
a = int(input('a='))
b = int(input('b='))
n = a
m = b
while a != b:
if a > b:
a = a - b
else:
b = b - a
print('(%s, %s)的最大公约数是: %s' % (n, m, a))
print('(%s, %s)的最小公倍数是: %s' % (n, m, m * n // a))
print('{} {}的最小公倍数是: {}'.format(n, m, m * n // a))
3 编写输出10以内素数的循环程序。
for i in range(2, 10):
for j in range(2, i):
if i % j == 0:
print(i, "等于", j, "*", int(i / j))
break
else:
print(i, "是素数")
4 求指定区间内的水仙花数(亦称阿姆斯特朗数),要求使用循环语句和判断语句。

如果一个n位正整数等于其各位数字的n次方之和,则称该数为水仙花数或阿姆斯特朗数。 例如3^3 + 7^3 + 0^3 = 370。1000以内的水仙花数有: 1,153,370,371,407


4.1 方法一
def daffodil(n):
mysum = 0
for z in str(n): # 将n转换为str类型可直接遍历元素
mysum += int(z) ** len(str(n))
if mysum == n:
return True
else:
return False
lower = int(input('最小值:'))
upper = int(input('最大值:'))
for j in range(lower, upper + 1):
if daffodil(j): # 调用daffodil()判断函数
print(j, end=' ')
4.2 方法二
def shuiXian(startFr, endFr):
for fr in range(startFr, endFr):
gewei = fr % 10
shiwei = fr // 10 % 10
baiwei = fr // 100
if gewei ** 3 + baiwei ** 3 + shiwei ** 3 == fr:
print(fr)
shuiXian(1, 100);
5 列表练习:写出各条命令的执行结果
print('=====1.列表练习:写出各条命令的执行结果=====')
nameList = ["掌上编程", "敬清秋", "我没有三颗心脏", "xzMhehe"]
a = nameList[2]
print(a)
nameList[0] = "远东以东"
print(nameList)
print(len(nameList))
nameList.append("Kate")
print(nameList)
nameList.insert(2, "Sydney")
print(nameList)
print(nameList[0:2])
print(nameList[2:])
nameList[1] = 'Jeff'
print(nameList)
nameList[0:2] = ['Dave', 'Mark', 'Jeff']
print(nameList)
a = [1, 2, 3] + [4, 5]
print(a)
a = [1, "Dave", 3.14, ["Mark", 7, 9, [100, 101]], 10]
print(a[1])
print(a[3][2])
print(a[3][3][1])
6 元组练习:写出各条命令的执行结果。哪条命令会出错,为什么?
print("=====2.元组练习:写出各条命令的执行结果。哪条命令会出错,为什么?=====")
tup1 = ('red', 'green', 1997, 2000, 1, 2)
tup2 = (1, 2, 3, 4, 5, 6, 7)
print("相同元素:", list(set(tup1).intersection(tup2)))
print("tup1[0]: ", tup1[0])
print("tup2[1:5]: ", tup2[1:5])
print("tup2[3:-1]: ", tup2[3:-1])
tup1 = (12, 34.56)
tup2 = ('abc', 'xyz')
tup3 = tup1 + tup2
print(tup3)
tup = ('red', 'green', 1997, 2000)
print(tup)
del tup
print("After deleting tup : ")
# print(tup)
print("print(tup) 这里会报错, 因为tup元组已删除")
7 字典练习:写出下列各条命令的执行结果
print("=====3.字典练习:写出下列各条命令的执行结果=====")
info = {"stu01": "马云", "stu02": "马化腾", "stu03": "邱节"}
print(info)
print(info["stu01"])
print(info.get("stu04"))
print("stu03" in info)
info["stu02"] = "xzMhehe"
print(info)
info["stu04"] = "无朽"
print(info)
del info["stu04"]
info.pop("stu03")
print(info)
8 集合练习:写出下列各条命令的执行结果
第一种
print("=====4.集合练习:写出下列各条命令的执行结果=====")
print("===第一种===")
list_1 = [1, 3, 4, 7, 3, 6, 7, 9]
# 对原列表去重并按从小到大排序
list_1 = set(list_1)
list_2 = set([2, 6, 0, 66, 22, 8, 4])
list_3 = set([1, 3, 7])
print(list_1)
print(list_2)
print(list_3)
# list_1与list_2的交集
print("{a} {b}".format(a="list_1与list_2的交集: ", b=list_1.intersection(list_2)))
# list_1与list_2的并集
print("{a} {b}".format(a="list_1与list_2的并集: ", b=list_1.union(list_2)))
# 包含仅存在于集合 x 中而不存在于集合 y 中的元素
print("{a} {b}".format(a="包含仅存在于集合 list_1 中而不存在于集合 list_2 中的元素: ", b=list_1.difference(list_2)))
# 返回两个集合中不重复的元素集合,即会移除两个集合中都存在的元素
print("返回两个集合中不重复的元素集合,即会移除 list_1 list_2 两个集合中都存在的元素: ", list_1.symmetric_difference(list_2))
# 判断集合的所有元素是否都包含在指定集合中
print("{a} {b}".format(a="symmetric_difference(判断集合的所有元素是否都包含在指定集合中): ", b=list_3.issubset(list_1)))
print(list_1.issuperset(list_3))
list_4 = set([5, 6, 8])
print(list_3.isdisjoint(list_4))
第二种
print("===第二种===")
# 对原列表去重并按从小到大排序
s = set([3, 5, 9, 10])
print("s=", s)
t = set("Hello")
print("t=", t)
a = t | s
print("a=", a)
b = t & s
print("b=", b)
# 去除重复
c = t - s
print("c=", c)
d = t ^ s
print("d=", d)
t.add('x')
print("t=", t)
s.update([10, 37, 42])
print("s=", s)
t.remove('H')
print("t=", t)
t.pop()
print("t=", t)
t.discard('H')
print("t=", t)
print(len(s))
print('x' in s)
print('x' not in s)
s.issubset(t)
print(s)
print(s <= t)
print("issuperset() 方法用于判断指定集合的所有元素是否都包含在原始的集合中,如果是则返回 True,否则返回 False:", s.issuperset(t))
print(s >= t)
print("方法返回两个集合的并集,即包含了所有集合的元素,重复的元素只会出现一次", s.union(t))
print("方法返回两个集合的并集,即包含了所有集合的元素,重复的元素只会出现一次", s | t)
print(s.intersection(t))
print("s 与 t 的相同元素", s & t)
print(s.difference(t))
print(s - t)
print("s 与 t 的不同元素", s.symmetric_difference(t))
# 不同元素
print("s 与 t 的不同元素", s ^ t)
print(s.copy())
numOne = 9
numTwo = 8
print(numOne if numOne < numTwo else numTwo)
9 九九乘法表
for neI in range(1, 10):
for neJ in range(1, neI + 1):
print('{} x {} = {} '.format(neJ, neI, neI * neJ), end='')
print()
10 创建People Student类
class People:
def __init__(self, name, age):
self.name = name
self.age = age
def speak(self):
print('My name is %s, I am %d years old. ' % (self.name, self.age))
class Student(People):
def __init__(self, name, age, mark):
People.__init__(self, name, age)
self.mark = mark
def speak(self):
People.speak(self)
print('My mark is %d' % self.mark)
s1 = Student('Jack', 19, 89)
s1.speak()
11 百钱买百鸡
i = 0
for x in range(1, 100 // 3 + 1):
for y in range(1, 100 // 2):
z = 100 - x - y
if z / 2 + y * 2 + x * 3 == 100:
print('小鸡', z, '母鸡', y, '公鸡', x)
i += 1
print('总共{}种'.format(i))
12 自定义Member并实例化
class Menber:
name = ''
__weight = 0
def __init__(self, name, weight):
self.name = name
self.__weight = weight
def speak(self):
print('我叫%s,体重为%d' % (self.name, self.__weight))
if __name__ == '__main__':
p = Menber('黎明', 18)
p.speak()

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_43874301/article/details/109757241

随机推荐

最新版docker 开启远程访问

最新版docker 开启远程访问

修改docker.service文件vi /etc/systemd/system/multi-user.target.wants/docker.serviceExecStart这行加入 -Htcp:/...

zapoul 阅读(835)

设计模式之观察者模式

观察者模式ObserverIntro观察者模式又叫做发布订阅(Publish/Subscribe)模式观察者模式定义了一种一对多的依赖关系,让多个观察者同时监听某一主题对象。这个主题对象在状态发生变化...

WeihanLi 阅读(963)

ASP.NET 跨域配置

报错信息The"Access-Control-Allow-Origin"headerispresentontherequestedresource解决方案web.config配置信...

大稳·杨 阅读(800)

图解SparkStreaming与Kafka的整合,这些细节大家要注意!

图解SparkStreaming与Kafka的整合,这些细节大家要注意!

前言老刘是一名即将找工作的研二学生,写博客一方面是复习总结大数据开发的知识点,一方面是希望帮助更多自学的小伙伴。由于老刘是自学大数据开发,肯定会存在一些不足,还希望大家能够批评指正,让我们一起进步!今...

努力的老刘 阅读(648)

Azure 服务月度更新盘点 | 十一月

Azure 服务月度更新盘点 | 十一月

11月MicrosoftAzure发布了多项新功能,从优化云上成本角度,Azure混合权益作为“拼团“上云一大利器,官宣了对RedHat和SUSELinux的...

微软技术栈 阅读(837)

23种设计模式C++源码与UML实现--桥接模式

23种设计模式C++源码与UML实现--桥接模式

桥接模式Bridge模式,又叫做桥接模式,是构造型的设计模式之一。Bridge模式基于类的最小设计原则,通过使用封装,聚合以及继承等行为让类承担...

Achou.Wang 阅读(984)

oracle数据库面试题及答案

oracle数据库面试题及答案:1、简述表空间和数据文件之间的关系。2、概述Oracle数据库体系的物理结构。3、简要介绍表空间、段、区和数据块之间的关系。4、简述Oracle实例系统中...

猿·随笔 阅读(489)