提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
目录
目录
一·抽奖游戏
牛牛在牛客网举行了抽奖游戏,他定义了一个幸运数字,所有人都有无限制次机会可以去猜幸运数字,直到有人猜中为止。当然有时候太难猜了,所有人经过很多次都没有猜对,这道题就被放弃了。因此请你写一个程序,输入多个数字,请你依次检验是否为牛牛的幸运数字,若是则输出“Congratulations!”,若没有人猜到幸运数字,则输出“Give up!”。(假设本轮幸运数字为3)
连续多行,每行输入一个猜测的数字,输入数字为负数则表示放弃。
输出字符串"Congratulations!"或者"Give up!
n = int(input("请输入幸运数字:"))
while n >= 0:
if n == 3:
print("祝贺!")
break
else:
n = int(input("请输入幸运数字:"))
while n < 0:
print("放弃!")
break
二 猴子香蕉问题
有一堆香蕉,一只猴子每天吃一半加一个,第六天还剩1个,问这堆香蕉原来有多少个?
for i in range(1,1000):
k1 = i
k2 = k1/2-1
k3 = k2/2-1
k4 = k3/2-1
k5 = k4/2-1
if k5/2-1 == 1:
print("猴子第一天一共有"+str(i)+"个香蕉")
break
三 打印菱形
用while循环打印菱形
n = int(input("请输入层数(层数为奇数):")) # n定义为层数,n为奇数
i = 1 # i定义为行数
k = int((n+1)/2)#定义为第k行
while i <= k:#上半部分
print(" "*(k-i), end="")
print("*"*(2*i-1))
i += 1
i = n-1#下半部分
while i >= 1:
j = 1 #打印空格
while j <= n - i:
print(" ", end="")
j += 2
j = 1 #打印*号
while j <= i-1:
print("*",end="")
j += 1
print()
i -= 2
四 打印字符串
创建一个依次包含字符串'P'、'y'、't'、'h'、'o'和'n'的列表my_list,
使用print()语句一行打印字符串'Here is the original list:',再直接使用print()语句把刚刚创建的列表my_list整个打印出来,
输出一个换行,再使用print()语句一行打印字符串'The number that my_list has is:',
再使用len()函数获取列表my_list里面有多少个字符串,并使用print()函数一行打印该整数。
按题目描述进行输出即可(注意前后两个输出部分需以一个空行进行分隔)。
Here is the original list:
['P', 'y', 't', 'h', 'o', 'n']
The number that my_list has is:
6
my_list = ["P","y","t","h","o","n"]
print('Here is the original list:')
print("my_list")
print()
print("the number that my_list has is:")
print(len(my_list))
五 牛牛偶数游戏
牛牛正在玩偶数游戏,需要一部分连续的偶数。你能使用列表解析的方法帮牛牛生成n个从2开始的偶数吗?请输出生成的列表。
输入数字n,n为正整数。
输出生成的偶数列表。
输入:
10 复制输出: [2, 4, 6, 8, 10, 12, 14, 16, 18, 20]
n = int(input("请输入正整数n:"))
k = 2*n #设:n=4 由2开头的4个偶数分别是2 4 6 8 最后一个数=2*4=k
list = [i for i in range(2,k+1,2)]
print(list)
1 range函数为左闭右开区间
2.range(2,8,n) 代表区间范围是[2,8) for循环遍历函数时每次打印的数字增加n
五 牛牛数数字
牛牛正在数列表中的数字,他定义了这样一个策略,遇到数字3就跳过,遇到数字8就停下来不再继续数,你能根据输入的列表数字,输出牛牛数了哪些数字吗?
一行输入多个数字,以空格间隔。
每行输出一个牛牛数到的数字。
输入:
1 2 3 4 5 6 7 8 9 复制输出: 1 2 4 5 6 7
n = map(int,input("请输入随机自然数:").split())
for i in n:
if i == 3:
pass #此处可换位continue
elif i == 8:
print(i)
break
else:
print(i)
当一行需要连续数字时:
1.a,b =input().split()
输入a,b时以空格作为分隔符,此时得到的a和b的类型均为字符串
2.a,b = map(int,input().split())
输入a,b时以空格作为分隔符,此时得到的a和b的类型均为整数
六 累加数和平均数
牛牛有一个列表,记录了他和同事们的年龄,你能用for循环遍历链表的每一个元素,将其累加求得他们年龄的总和与平均数吗?
一行输入多个整数,以空格间隔。
输出年龄总和与平均数,平均数保留1位小数,两个数字以空格间隔。
输入:
22 23 24 复制输出: 69 23.0
n = map(int,input("请输入每个同事的年龄:").split(' ')) #使n一行可以输入多个元素
list = [i for i in n] #将n的写入列表
count = 0
for m in list: #遍历列表取出列表中的值
count += m
print("年龄总和为:"+str(count), end="")
print(" ", end="")
b = len(list) #len函数输出可迭代对象的长度--该列表内共有多少个元素
avg = count/b
print("年龄的平均数为:"+str("%.1f"%avg), end="") #输出结果保留一位小数
1.len函数取出可迭代对象的长度
2.for 循环遍历列表,逐个取出列表中的元素
3.输出保留一位小数:
a=12.34567889
print(“%.1f”%a)
#保留一位小数--保留两位小数将1f改为2f即可
七 格式化清单
牛妹有一个暑期想吃的东西的清单,你可以把它视作一个Python的list,['apple', 'ice cream', 'watermelon', 'chips', 'hotdogs', 'hotpot']。牛妹决定从清单最后一种食物开始往前吃,每次吃掉一种食物就把它从list中pop掉,请使用while循环依次打印牛妹每次吃掉一种食物后剩余的清单。
每次去除列表末尾元素后,打印整个列表,直到列表为空,每个列表之间换行。
最初的列表不打印,空列表要打印。
n = list(['apple', 'ice cream', 'watermelon', 'chips', 'hotdogs', 'hotpot']) #定义一个列表
m = n.pop()
b = len(n)
while b > 0:
print("",n)
k = n.pop()
b = len(n)
1.list函数:
n = ["........"] # n = ["abc"]
print(n) #输出[abc]
n = list(["......."]) # n = list(["abc"]) n = list("abc")
print(n) #输出[abc] print(n) #输出["a","b","c"]
2.pop函数
list.pop() #默认删除列表最后一个元素
list.pop(1) #删除列表第一个元素 -1代表删除列表倒数第一个元素
3.使用pop函数后print函数用法:
print("",list)
八.列表的最值运算
牛牛给了牛妹一个一串无规则的数字,牛妹将其转换成列表后,使用max和min函数快速的找到了这些数字的最值,你能用Python代码实现一下吗?
要求:输入一行多个整数,数字之间以空格间隔。输出最值
示例:
输入:
3 5 6 9 10 6 2 输出:210
n = map(int, input("随机输入一串数字:").split())
b = list(n)
def m_list():
ma = max(b)
mi = min(b)
print(ma)
print(mi)
m_list()
九.公式计算器
牛牛听说Python中有一个很神奇的函数eval(),只要输入的字符串是一个公式,它能够直接计算这个公式的值。
现牛牛以字符串地形式输入一个公式,请你使用eval()计算结果。
以字符串的形式输入公式,包括加减乘幂四种运算,数字都是整数,有正有负有零
输入:3 * 7
输出:21
n = input("请输入公式:")
print(eval(n))
十.斐波那契数列
输入描述:输入斐波那契数列对应的项
6
输出描述:输出斐波那契数列对应项对应的数字
8
n = int(input("请输入斐波那契数列的一个项:"))
def fibonacci(n):
if n ==0 or n== 1:
return n
return fibonacci(n-1)+fibonacci(n-2)
#对应项=前两个项对应的数的和
#当输入的项不为0和1时,继续引用fiboncci()函数
print(fibonacci(n))
输入:6
输出:8
第6项=第5项+第4项 8
第5项=第4项+第3项 5
第4项=第3项+第2项 3
第3项=第2项+第1项 2
第2项=第0项+第1项 1
第1项=1 第0项=0
十一.猜数字游戏
电脑随机一个范围内的数字,用户输入数据判断,如果数字大了,提供”数字大了“
成功之后,加上用户是否继续功能
#定义一个函数用于输入数字
def put_num():
n = int(input("请输入一个数字:"))
if n in range(0,12): #判断输入的数字是否在游戏规则内
m = int(input("请输入{1}是/{2}否继续游戏:")) #判断是否继续游戏
if m == 1:
return put_num() #重新执行函数继续游戏
elif m == 2:
print("游戏结束")
elif n > 11: #判断输入的数字是否在游戏规则内
print("数字大了")
return put_num()
put_num()
使用return 函数将put_num()函数作为返回值返回
十二.不死兔子问题
买回来一对刚出生兔子,刚出生兔子需要四个月成年,成年的兔子每一个会生一对兔子
问第n个月后,共有多少个对兔子
n = int(input("请输入为4的倍数的月数:"))
i = n/4
def jiecheng(i):
if i ==1:
return 4
elif i > 1:
return i*jiecheng(i-1)
print(jiecheng(i))
使用return 函数将函数作为返回值计算阶乘
十三.求和问题
求100以内能不能3整除的数的和
n = int(input("请输入区间最大值:"))
num_list = []
for i in range(1,n+1):
if i % 3 > 0:
num_list.append(i) #将满足条件的 i装入列表容器
count = sum(i for i in num_list) #使用sum函数针对从列表中遍历出来的数求和
print(count)
本题遗忘知识点:
1.列表容器添加元素的方法:list.append(i)
2.sum(i for i in num_list) #使用sum函数针对从列表中遍历出来的数求和