练习02

 假定有下面这样的列表:
    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]

I have fentiao,fendai,fensi and apple

 

1.系统里面有用户 用户有密码
    users = ['root','westos']
    passwds = ['123','456']
2.用户登陆(判断用户登陆是否成功)
    1).判断用户是否存在
        2).如果存在:
            判断用户密码是否正确:先找出用户对应的索引,
            根据passwds[索引值]
            如果正确:登陆成功,退出循环
            如果密码不正确:重新登陆 (机会只有三次)
    2).不存在
    重新登陆(机会只有三次)

users = ['root', 'westos']
passwds = ['123', '456']

for i in range(3):
    if i == 0:
        user = raw_input('请输入用户名:')
    else:
        print '用户名不存在,你还剩%d次机会' % (3 - i)
        user = raw_input('请重新输入用户名:')
    if user in users:
        for j in range(3):
            if j == 0:
                passwd = raw_input('请输入密码:')
            else:
                print '密码错误,你还剩%d次机会' % (3 - j)
                passwd = raw_input('请重新输入密码:')
            if passwds[users.index(user)] == passwd:
                print '登陆成功'
                break
            j += 1
        else:
            print '请过会在输入密码'
        break
    i += 1
else:
    print '请过会在登陆'

请输入用户名:root
请输入密码:123
登陆成功

 

1.后台管理员只有一个用户: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 '管理员登陆成功'
    while True:
        print '用户信息管理'.center(50, '*')
        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, '*')
            print """
        1 删除单个用户
        2 删除全部用户
            """
            ch = raw_input('请选择:')
            if ch == '1':
                delUser = raw_input('删除用户:')
                if delUser not in users:
                    print '用户%s 不存在' % delUser
                else:
                    passwds.pop(users.index(delUser))
                    users.remove(delUser)
                    print '用户%s 删除成功' % delUser
            elif ch == '2':
                for i in users[::]:
                    users.remove(i)
                for j in passwds[::]:
                    passwds.remove(j)
                print '所有用户已删除'
            else:
                print '无效操作'
        elif choice == '3':
            print '查看用户信息'.center(50, '*')
            print """
        1 查看用户是否存在,存在则显示密码
        2 查看所有用户及密码
            """
            ch = raw_input('请选择:')
            if ch == '1':
                viewUser = raw_input('查看用户:')
                if viewUser not in users:
                    print '用户%s 不存在' % viewUser
                else:
                    print '用户%s 的密码为%s' % (viewUser, passwds[users.index(viewUser)])
            elif ch == '2':

                for i in users[::]:
                    print '用户名:%s\t密码:%s' % (i, passwds[users.index(i)])
            else:
                print '无效操作'
        elif choice == '4':
            exit()
        else:
            print '请输入正确的操作'
else:
    print '登陆失败'

*****************管理员登陆******************
UserName:admin
Password:admin
管理员登陆成功
****************用户信息管理****************

        1 添加用户信息
        2 删除用户信息
        3 查看用户信息
        4 退出
        
请选择:

 

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

input = raw_input('input:')
s = input.split()
words_dict = {}
for item in s:
    if item not in words_dict:
        words_dict[item] = 1
    else:
        words_dict[item] += 1
print words_dict

input:hello java hello python
{'python': 1, 'java': 1, 'hello': 2}

 

# 数字重复统计:
    1). 随机生成1000个整数;
    2). 数字的范围[20, 100],
    3). 升序输出所有不同的数字及其每个数字重复的次数;
"""

import random

b = []
for i in range(1000):
    a = random.randint(20, 100)
    print a
    b.append(a)
b = sorted(b)
c = list(set(b))
print c
for i in c[::]:
    print '%d 重复的次数为%d' %(i,b.count(i))
import random

all_nums = []
for item in range(1000):
    all_nums.append(random.randint(20, 100))
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

华为机测题:
明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性
他先用计算机生成了N个1~1000之间的随机整数(N<=1000),N是用户输入的,对于
其中重复的数字,只保留一个,把其余相同的数字去掉,不同的数对应着不同的学生的学号,然后再把这些
数从小到大排序,按照排好的顺序去找同学做调查,请你协助明明完成“去重”与排序工作
"""

import random

a = set([])
input = int(raw_input('请输入:'))
for i in range(input):
    a.add(random.randint(1, 1000))
print sorted(a)

请输入:100
[35, 46, 107, 128, 129, 135, 152, 162, 167, 172, 175, 193, 196, 197, 198, 201, 205, 255, 266, 273, 285, 304, 310, 320, 322, 332, 335, 340, 359, 362, 364, 385, 420, 423, 424, 444, 454, 473, 480, 482, 489, 510, 533, 552, 556, 564, 577, 581, 583, 593, 602, 614, 617, 625, 628, 639, 641, 646, 649, 661, 680, 698, 702, 708, 712, 714, 715, 718, 724, 727, 728, 732, 753, 757, 759, 770, 772, 779, 795, 815, 816, 820, 823, 831, 840, 845, 852, 872, 883, 887, 896, 912, 921, 948, 955, 965, 987]

 

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

def collatz(number):
    if number % 2 == 0:
        print '%d' % (number // 2)
    else:
        print '%d' % (3 * number + 1)


collatz(34)

17

案例2:
    编写函数, 接收一个列表(包含30个整形数)和一个整形数k, 返回一个新列表.
    函数需求:
        - 将列表下标k之前对应(不包含k)的元素逆序;
        - 将下标k及之后的元素逆序;

import random

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


def list(lists, k):
    list1 = lists[:k][::-1]
    list2 = lists[k:][::-1]
    return list1 + list2


input1 = int(raw_input('请输入k:'))
if input1 <= 30:
    print list(a, input1)
else:
    print 'error'

[53, 8, 65, 4, 1, 95, 85, 25, 61, 23, 3, 95, 30, 53, 29, 82, 100, 73, 49, 85, 46, 8, 17, 4, 78, 84, 80, 2, 61, 24]
请输入k:14
[53, 30, 95, 3, 23, 61, 25, 85, 95, 1, 4, 65, 8, 53, 24, 61, 2, 80, 84, 78, 4, 17, 8, 46, 85, 49, 73, 100, 82, 29]

 

模拟轮盘抽奖游戏
# 轮盘分为三部分: 一等奖, 二等奖和三等奖;
# 轮盘转的时候是随机的,
#       如果范围在[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():
    num = random.random()
    for k, v in rewardDict.items():
        if v[0] <= num < v[1]:
            return k


resultDict = {}

for i in range(1000):
    res = rewardFun()
    if res not in resultDict:
        resultDict[res] = 1
    else:
        resultDict[res] += 1

for k, v in resultDict.items():
    print k, '-------->', v

二等奖 --------> 226
一等奖 --------> 81
三等奖 --------> 693

 

(2017-腾讯-在线编程题)
- 题目描述:
给定一个正整数,编写程序计算有多少对质数的和等于输入的这个正整数,并输出结果。输
入值小于1000。
如,输入为10, 程序应该输出结果为2。(共有两对质数的和为10,分别为(5,5),(3,7))
# [2,3,5,7]
- 输入描述:
输入包括一个整数n,(3 ≤ n < 1000)
- 输出描述:
输出对数
- 示例1 :
输入:
    10
输出:
    2

def isPrime(num):
    for i in range(2, num):
        if num % i == 0:
            return False
    else:
        return True

count = 0
num = int(raw_input('请输入:'))
li = [i for i in range(2, num) if isPrime(i)]
for i in li:
    for j in li:
        if i + j == num:
            count += 1
            if i == j:
                count += 1
print count / 2

请输入:10
2

 

题目需求:
    对于一个十进制的正整数, 定义f(n)为其各位数字的平方和,如:
    f(13) = 1**2 + 3**2 = 10
    f(207) = 2**2 + 0**2 + 7**2 = 53
    下面给出三个正整数k,a, b,你需要计算有多少个正整数n满足a<=n<=b,
    且k*f(n)=n
输入:
    第一行包含3个正整数k,a, b, k>=1,  a,b<=10**18, a<=b;
输出:
    输出对应的答案;

范例:
    输入: 51 5000 10000
    输出: 3

def f(n):
    n = str(n)
    sum = 0
    for i in n:
        sum += int(i) ** 2
    return sum


s = raw_input('请输入:')
li = []
for item in s.split():
    li.append(int(item))
k, a, b = li

count = 0
for i in range(a, b + 1):
    if k * f(i) == i:
        count += 1
print count

请输入:51 5000 10000
3

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值