以一个正整数n为例,如果n为偶数,就将它变为n/2,如果除后变为奇数,则将它乘3加1(即3n+1)。不断重复这样的运算,经过有限步后,必然会得到1。
本实例要求编写guess函数代码,计算用户输入的数据按照以上规律经多少次运算后可变为1。
def guess(number):
i=0; #统计变幻的次数
original_number=number #记录最初的number
while number != 1:
if number % 2 == 0:
number =number / 2
i += 1
else:
number = number * 3 + 1
i += 1
print(f"{original_number}经过{i}次变换后回到1")
num=int(input("请输入一个大于1的正整数:"))
guess(num)
# 饮品信息
def all_goods():
goods = {"可口可乐": 2.5, "百事可乐": 2.5, "冰红茶": 3, "脉动": 3.5, "果缤纷": 3,
"绿茶": 3, "茉莉花茶": 3, "尖叫": 2.5}
return goods
# 展示饮品信息(名称:价格)
def show_goods():
print("=" * 25)
for x, y in all_goods().items():
print(x, ":", str(y) + "元")
print("=" * 25)
# 计算总额
def total(goods_choice):
count = 0
for name, num in goods_choice.items():
total_money = all_goods()[name] * num
# 总金额
count += total_money
print("需要支付金额:", count, "元")
def main():
goods_choice = {}
print("饮 品 自 动 售 货 机")
show_goods()
# 循环选购的商品
print("输入q完成购买")
while True:
goods_name = input("请输入购物的商品:")
if goods_name == 'q':
break
if goods_name in [g_name for g_name in all_goods().keys()]:
goods_num = input("请输入购物数量:")
if goods_num.isdigit():
goods_choice[goods_name] = float(goods_num)
else:
print('商品数量不合法')
else:
print('请输入正确的商品名称')
total(goods_choice)
main()
import turtle
def koch(size,n):#⼤⼩为size的n阶科赫曲线的绘制
if n == 0:
turtle.fd(size)
else:
for angle in [0, 60, -120, 60]:
turtle.left(angle)
koch(size / 3, n - 1)
def main():
turtle.setup(600, 600)
turtle.penup()
turtle.goto(-200, 100)
turtle.pendown()
turtle.pensize(2)
turtle.speed(10000)
level = 5
koch(400, level)
turtle.right(120)
koch(400, level)
turtle.right(120)
koch(400, level)
turtle.hideturtle()
turtle.done()
main()
兔子一般在出生两个月之后就有了繁殖能力,每对兔子每月可以繁殖一对小兔子,假如所有的兔子都不会死,试问一年以后一共有多少对兔子?
本实例要求编写递归函数,利用递归实现根据月份计算兔子总数量的功能。
def fibonacci(month):
if month == 0 or month == 1:
return 1
else:
return fibonacci(month-1) + fibonacci(month-2)
# 测试经过12个月份后的兔子对数
result = fibonacci(11)
print(result)
回文数是一个正向和逆向都相同的整数,如123454321,9889。
x = input('请输入任意位数的数字:')
if x == x[::-1]:
print('%s是个回文数' % x)
else:
print('%s不是回文数' % x)
编写一个函数,求任意多个整数的平均值。(使用参数的打包和解包方法)
print("-----求平均值,可输入任意多个整数-------")
lst = [] # 定义一个空列表
str = input("请输入数值,用空格隔开:")
lst1 = str.split(" ") # lst1用来存储输入的字符串,用空格分割
i = 0
while i <= len(lst1)+1:
lst.append(int(lst1.pop())) # 将lst1的数据转换为整型并赋值给lst
i += 1
# print(lst)
def sum(list):
# "对列表的数值求和"
s = 0
for x in list:
s += x
return s
def average(list):
# "对列表数据求平均值"
avg = 0
avg = sum(list)/(len(list)*1.0) #调用sum函数求和
return avg
print("avg = %f"% average(lst))
print((lambda num1, num2: num1 + num2)(75, 63))
ps:说实话,这些代码是之前写的 现在早就考完python 所以如果有问题的话 自己纠错 不要问我 谢谢