zoukankan      html  css  js  c++  java
  • python 练习2

    #######假定有下面这样的列表:
        names = ['fentiao', 'fendai', 'fensi', 'apple']
        输出结果为:'I have fentiao, fendai, fensi and apple.'

    names = ['fentiao', 'fendai', 'fensi', 'apple']
    print 'I have ' + ','.join(names[:-1]) + ' and ' + names[-1]
     
    ######系统里面有用户 用户有密码
        users = ['root','westos']
        passwds = ['123','456']
    ####用户登陆(判断用户登陆是否成功)
        1).判断用户是否存在
            2).如果存在:
                判断用户密码是否正确:先找出用户对应的索引,
                根据passwds[索引值]
                如果正确:登陆成功,退出循环
                如果密码不正确:重新登陆 (机会只有三次)
        2).不存在
        重新登陆(机会只有三次)
    """
    users = ['root','westos']
    passwds = ['123','456']
    trycont = 0
     while trycont < 3:
         inuser = raw_input('用户名:')
         inpasswd = raw_input('密码:')
         trycont += 1
         if inuser in users:
             index = users.index(inuser) 
             passwd = passwds[index]
             if inpasswd == passwd:
                 print '%s 登陆成功' % inuser
                 break
            else:
                 print '%s 登陆失败' % inuser
            else:
             print '用户%s 不存在' % inuser
      else:
         print '三次机会已经用完'
     
    后台管理员只有一个用户:admin 密码:admin
    2.当管理员登陆成功后,才可以管理用户信息
    3.管理用户信息包含
        添加用户信息
        删除用户信息
        查看用户信息
        退出
    """
    print '管理员登陆'.center(50, '*')
    inuser = raw_input('UserName:')
    inpasswd = raw_input('Password:')
    users = ['root', 'westos']
    passwds = ['123', '456']
    if inuser == 'admin' and inpasswd == 'admin':
        print '管理员登陆成功'
        print '用户信息管理'.center(50, '*')
        while True:
            print """
            1 -添加用户信息
            2 -删除用户信息
            3 -查看用户信息
            4 -退出
            """
            choice = raw_input('请选择你的操作:')
            if choice == '1':
                print '添加用户信息'.center(50, '*')
                addUser = raw_input('添加用户:')
                if addUser in users:
                    print '用户%s已经存在' % addUser
                else:
                    addPasswd = raw_input('密码:')
                    users.append(addUser)
                    passwds.append(addPasswd)
                    print '添加用户%s成功' %addUser
            elif choice == '2':
                print '删除用户信息'.center(50,'*')
                delUser = raw_input('删除的用户:')
                delIndex = users.index(delUser)
                users.remove(delUser)
                passwds.pop(delIndex)
                print '删除用户%s成功' %delUser
            elif choice == '3':
                print '查看用户信息'.center(50,'*')
                print ' 用户名 密码'
                userCount = len(users) #2
                for i in range(userCount): # 0 ,1
                    print ' %s %s' %(users[i],passwds[i])
            elif choice == '4':
                exit()
            else:
                print '请输入正确的选择'
    else:
        print '管理员登陆失败!'

     
    重复的单词: 此处认为单词之间以空格为分隔符, 并且不包含,和.;
        # 1. 用户输入一句英文句子;
        # 2. 打印出每个单词及其重复的次数;
     "hello java hello python"
     hello 2
     java 1
     python 1

    s = raw_input('s:')
    # 1.把每个单词分割处理
    s_li = s.split()
    print s_li
    # 2.通过字典存储单词和该单词出现的次数
    words_dict = {}
     
     
    数字重复统计:
        1). 随机生成1000个整数;
        2). 数字的范围[20, 100],
        3). 升序输出所有不同的数字及其每个数字重复的次数;
    """
    import random
    # 1.随机生成1000个整数
    all_nums = []
    for item in range(1000):
        # 2.数字的范围
        all_nums.append(random.randint(20, 100))
    # 3.升序输出所有不同的数字及其每个数字重复的次数
    sorted_num = sorted(all_nums)
    nums_dict = {}
    for num in sorted_num:
        if num in nums_dict:
            nums_dict[num] += 1
        else:
            nums_dict[num] = 1
    print nums_dict

    案例1:
        编写一个函数cacluate, 可以接收任意多个数,返回的是一个元组.
        元组的第一个值为所有参数的平均值, 第二个值是大于平均值的所有数

    案例2:
        编写函数, 接收一个列表(包含30个整形数)和一个整形数k, 返回一个新列表.
        函数需求:
            - 将列表下标k之前对应(不包含k)的元素逆序;
            - 将下标k及之后的元素逆序;
    """
    def cacluate(*num):
        li = []
        avg = sum(num)/len(num)
        for i in num:
            if i > avg:
                li.append(i)
        return avg,li
    count = cacluate(12,13,14,15,16)
    print count

     import random


     def fun(alist, k):
         if k < 0 or k > len(alist):
             return 'error key'
         newL1 = alist[:k]
         newL2 = newL1[::-1]
         newL3 = alist[k:]
         newL4 = newL3[::-1]
         return newL2 + newL4

     list = []
     for i in range(30):
         num = random.randint(1,100)
         list.append(num)
     print list
     a = fun(list,4)
     print a

     def fun(alist, k):
         if k < 0 or k > len(alist):
             return 'error key'
         return alist[:k][::-1] + alist[k:][::-1]

    ######拟轮盘抽奖游戏
     轮盘分为三部分: 一等奖, 二等奖和三等奖;
     轮盘转的时候是随机的,
           如果范围在[0,0.08)之间,代表一等奖,
           如果范围在[0.08,0.3)之间,代表2等奖,
           如果范围在[0, 1.0)之间,代表3等奖,
     模拟本次活动1000人参加, 模拟游戏时需要准备各等级奖品的个数.

    import random
    rewardDict = {
        '一等奖': (0, 0.08),
        '二等奖': (0.08, 0.3),
        '三等奖': (0.3, 1)
    }

    def rewardFun():
        """用户得奖等级"""
        # 生成一个0~1之间的随机数
        num = random.random()
        # 判断随机转盘转的数是几等奖
        for k, v in rewardDict.items():
            # 这里的v是元组
            if v[0] <= num < v[1]:
                return k
    # print rewardFun()
    resultDict = {}
    for i in range(1000):
        # res:本次转盘的等级(一/二/三等奖)
        res = rewardFun()
        if res not in resultDict:
            resultDict[res] = 1
        else:
            resultDict[res] = resultDict[res] + 1
    for k, v in resultDict.items():
        print k, '---------->', v
     


    ########编写一个名为collatz()的函数,它有一个名为number的参数
      如果参数是偶数,那么collatz()就打印出number//2
      如果number是奇数,collatz()就打印3*number+1

    def collatz(number):
         if number % 2 == 0:
             print number // 2
         else:
             print 3 * number + 1
        print number // 2 if number % 2 == 0 else 3 * number + 1
    collatz(2)
     
  • 相关阅读:
    Visual Studio DSL 入门 11为状态机设计器添加规则
    不平静的2009,期待更不平静的2010
    ASP.NET MVC 2 正式发布
    [翻译] DSL和模型驱动开发的最佳实践(2/4)
    Visual Studio DSL 入门 9创建状态机的图形符号
    Visual Studio DSL 入门 6DSL的图形表示1
    智诚B2C1.31正式发
    一个程序员的创业尝试
    Visual Studio DSL 入门 13结合T4生成代码
    Visual Studio DSL 入门 10完善状态机案例
  • 原文地址:https://www.cnblogs.com/zhengyipengyou/p/9578704.html
Copyright © 2011-2022 走看看