编程输出斐波那契数列的前若干项。即根据用户输入的正整数,
输出数列的各项,如输入正整数5,则输出斐波那契数列的前五项:1,1,2,3,5
PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取
方法一
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)))
1234567891011121314151617181920
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))
12345678910111213
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, "是素数")
12345678
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=' ')
12345678910111213141516
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);
12345678910
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])
1234567891011121314151617181920212223
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元组已删除")
1234567891011121314151617
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)
12345678910111213
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))
123456789101112131415161718192021222324
第二种
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)
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
9 九九乘法表
for neI in range(1, 10):
for neJ in range(1, neI + 1):
print('{} x {} = {}\t'.format(neJ, neI, neI * neJ), end='')
print()
1234
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()
123456789101112131415161718192021
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))
网友评论