python练习题-1

记录一下第一次的练习题:

遗憾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()

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值