python某公司为员工发放奖品_python 练习2

这个Python程序实现了用户登录和管理系统,包括用户验证、密码重试限制、管理员权限等功能。用户可以添加、删除和查看用户信息。此外,还包含了单词重复统计、数字重复统计的示例以及Collatz猜想的实现。
摘要由CSDN通过智能技术生成

#######假定有下面这样的列表:

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 '\t用户名\t密码'

userCount = len(users) #2

for i in range(userCount): # 0 ,1

print '\t%s\t%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)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值