1、编程解决猴子吃桃问题 猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天又将剩下的桃子吃了一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第十天早上想吃时,只剩下一个桃,求第一天共摘了多少个桃?(迭代法)
p = 1
print('第10天吃之前就剩1个桃子')
for i in range(1, 10):
p = (p+1) * 2
print('第%s天吃之前还有%s个桃子' % (i, p))
print('第1天共摘了%s个桃子' % p)
2、一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第十次落地时,共经过多少米?第十次反弹多高?
h = 100
w = 10
lenth = h
for i in range(1, w+1):
hight = h / 2 ** i
lenth =lenth+hight*2
if w == 1:
hight = 100
lenth = 100
if w - 1 == i:
print("第", w, '次反弹的高度为:', hight, '米')
print('共经过', lenth, '米')
3、用户输入一句英文句子,打印出每个单词及其重复的次数
sentence = input('Enter a sentence :\n')
str = sentence.split()
a = {}
for num in str:
if num in a :
a[num] += 1
else:
a[num] = 1
print(a)
4、列表b = [1,2,3,4,5]
(1)用两种方法输出下面的结果:[1,2,3,4,5,6,7,8]
(2)用列表的2种方法返回结果:[5,4]
(3)判断2 是否在列表中
b = [1,2,3,4,5]
print(b + [6,7,8])
b.append(6)
b.append(7)
b.append(8)
print(b)
b = [1,2,3,4,5]
print(b[3:5])
print(b[3:])
b = [1,2,3,4,5]
print(2 in b)
5、输出指定范围内的素数
lower = int(input("输入区间最小值: "))
upper = int(input("输入区间最大值: "))
for num in range(lower,upper + 1):
# 素数大于 1
if num > 1:
for i in range(2,num):
if (num % i) == 0:
break
else:
print(num,end=' ')
6、计算Π的值(蒙特卡罗法)
from random import random
from math import sqrt
max = 2000000
count = 0
for i in range (1,max):
x,y = random(),random()
dist = sqrt(x**2+y**2)
if dist <= 1:
count =count +1
pi = 4*(count/max)
print("Π的值为%f"%pi)
7、输入某年某月某日,判断这一天是这一年的第几天?
year = int(input('year:\n'))
month = int(input('month:\n'))
day = int(input('day:\n'))
months=(0,31,59,90,120,151,181,212,243,273,304,334)
if 0<month<13 and 0<day<32:
sum =months[month-1]
else:
print('data error!')
sum +=day
leap = 0
if (year % 400 == 0 ) or ((year %4 == 0)and (year % 100 == 0)):
leap = 1
if leap == 1 and months > 2:
sum += 1
print("%s年%s月%s日是这一年的第%s天"%(year,month,day,sum))
8、判断一个密码是否符合要求
code=str(input("请输入你的密码:\n"))
if len(code) < 6 or len(code) > 20 :
print( '密码长度不符合要求')
else :
for i in code :
s=ord(i) in range(97, 123) or ord(i) in range(65, 91) or ord(i) in range(48,56)
if s:
print('密码符合要求')
break
else :
print( '密码只能由大小写字母和数字组成,请重新输入')
break
9、定义一个函数,求两个正整数的最小公倍数
def beishu(x,y):
if x > y:
bigger = x
else:
bigger = y
while True:
if bigger % x ==0 and bigger % y==0:
print(str(num1)+"和"+str(num2)+"的最小公倍数为%d"%bigger)
break
else:
bigger +=1
num1 = int(input("请输入第一个数:"))
num2 = int(input("请输入第二个数:"))
beishu(num1,num2)
10、定义一个动物类,有名字和叫声两个公有属性和颜色这个私有属性。定义一只狗和一只猫,继承父类(动物类)的属性
class Animal(object):
def __init__(self,name,jiao):
self.name=name
self.jiao=jiao
self.__color="白色"
class Dog(Animal):
def __init__(self,name="旺财",jiao="汪汪"):
self.name=name
self.jiao=jiao
def printInfo(self):
print("名字是:%s"%self.name)
print("叫声是:%s"%self.jiao)
class Cat(Animal):
def __init__(self,name="咪咪",jiao="喵喵"):
self.name=name
self.jiao=jiao
def printInfo(self):
print("名字是:%s"%self.name)
print("叫声是:%s"%self.jiao)
wangcai=Dog()
wangcai.printInfo()
mimi =Cat()
mimi.printInfo()