记录一下第一次的练习题:
遗憾1:百鸡百元的题目上,开始想用while循环来实现,发现总是掉进死循环,想不清楚解决方案,只能作罢,希望那天回头能兴明白为什么不行。
遗憾2:对比两个数组,找出不同的数字,用的是for循环,按照单个数字逐个比较的的方案,从算法的角度考虑应该是笨办法,效率不高,还没有想到更好的方案。
#-*- encoding = utf-8 -*-
import random
# 练习1
# 用while...else...语句编写一个程序,判断输入数字是奇数还是偶数。
def oddEvenJud():
num = int(input("please input a number: "))
while num%2 != 0:
print("%d is odd number"%num)
break
else:
print("%d is even number"%num)
#执行第一题结果
# oddEvenJud()
# 练习2
# 1. 百钱买百鸡
#
# 假如你手上有100块钱,你需要买100只鸡。这个时候你去市场上,发现鸡有三种:母鸡3元一只,公鸡1元一只,小鸡0.5元一只,现在请问你有多少种买法可以把钱花完?
#
#
#
# 思路:根据题目不难想到,母鸡最多可以买33只(i),公鸡最多可以买100只(j),而小鸡最多也只能买100只(k)(因为只需要买100只鸡)。
#
# 只要三个鸡的数量(变量)能满足共100只(之和为100),并且满足花完100元(乘积之和为100),那么这就算是一种方法。令一个变量numb在打印出一种方法后自增+1,那么,最终打印numb的值即为方法的个数。
def hunChickens():
i =0
num = 0
for i in range(0,34):
for j in range(0,101):
for k in range(0,101):
if i*3+j*1+float(k)*0.5==100 and i+j+k==100:
#记录买法次数
num+=1
#打印买法
# print("i=%d,j=%d,k=%d"%(i,j,k))
#打印买法次数
else:
pass
print("you can use %d ways to buy chickens~"%num)
#执行第二题结果
# hunChickens()
#练习3
# 题目描述:
# 计算字符串最后一个单词的长度,单词以空格隔开。
# 输入描述:
# 一行字符串,非空,长度小于5000。
# 输出描述:
# 整数N,最后一个单词的长度。
# 示例1:
# 输入:hello world
# 输出:5
def calcWords():
#输入字符串
myStr = input("plase input your sentences:")
#按照空格分割
tempStr = myStr.split(' ')
#取最后一个字符的长度
print(len(tempStr[-1]))
#打印第三题结果
#calcWords()
#练习4
#比较两个列表中的元素,找出不相同的元素并保存在列表3中
def cmpList():
aList = [1,2,1,3]
bList = [1,2,1,3]
tempList = []
cList = []
#生成随机数字并追加到数组内
for i in range(0,5):
aList.append(random.randint(0,1000))
bList.append(random.randint(0,1000))
print('aList',aList)
print('bList',bList)
# cList = aList + bList
print('oldcList',cList)
#找出相同的元素并加入临时列表
for i in aList:
for j in bList:
# print('blist',j)
if i == j:
tempList.append(i)
# print(tempList)
#判断两个数组不在临时数组内的数组,即可去除加入cList
for i in (aList+bList):
if i not in tempList:
cList.append(i)
#排序,方便判断是否有重复值
cList.sort()
#打印结果
print('newcList',cList)
#执行第四题结果
#cmpList()
# 练习5
# 遍历以下列表 ,并找出索引为奇数的元素
def oddIndex():
aList = []
#生成数组
for i in range(0,10):
aList.append(random.randint(0,1000))
print(aList)
#去除索引索引为奇数的元素
for i in range(0,len(aList)):
# print(i)
#如果下标处于2的余数不为0,则索引为奇数
if i%2 != 0:
print('index = %d,number = %d'%(i,aList[i]))
else:
pass
#打印第5题结果
#oddIndex()