当前位置: 首页 > 编程日记 > 正文

元组、列表、字典及集合练习

列表练习题:

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

#names = ['lily', 'denny', 'jenny', 'apple']

#输出结果为:'I have lily,denny, jenny and apple.'

names = ['lily', 'denny', 'jenny', 'apple']

print 'I have ' + ','.join(names[:-1]) + ' and ' + names[-1]

2、后台管理前台会员信息

要求:

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 '管理员登陆成功'
    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 '管理员登陆失败!'

3、用户管理系统(方法1)

要求:

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

users = ['root', 'westos']
passwds = ['123', '456']
trycont = 0
# 尝试登陆的次数
while trycont < 3:
    inuser = raw_input('用户名:')
    inpasswd = raw_input('密码:')
    # 尝试次数+1
    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 '三次机会已经用完'

4、用户管理系统(方法2)

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

i = 0
while i < 3:
    user = raw_input('用户名:')
    passwd = raw_input('密码:')
    i += 1
    if user in users:
        num = users.index(user)
        if passwd == passwds[num]:
            print ('登陆成功')
            break
        else:
            print ('登录失败')
            print ('你还有%d次机会') % (3 - i)
else:
    print ('登录失败,3次机会已用完,请稍后再试')

5、笔试题

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


import random
# 先 生成n个随机数
# 优先选择集合
s = set([])
for i in range(int(raw_input('N:'))):
    # num = random.randint(1,1000)
    # s.add(num)
    s.add(random.randint(1,1000))
print s
print sorted(s)

6、字典练习题

要求:

# 重复的单词: 此处认为单词之间以空格为分隔符, 并且不包含,和.;
    # 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 = {}

"""
依次循环遍历列表
    如果列表元素不在字典的key中,将元素作为key 1作为valus值
    如果列表元素在字典的key中,直接更新元素value值,在原有的基础上加1
"""
for item in s_li:
    if item not in words_dict:
        words_dict[item] = 1
    else:
        words_dict[item] += 1

# 4.打印生成的字典
print words_dict

相关文章:

【iOS】sqlite3的使用(増删改查)

目录&#xff1a; 一、sqlite3常用函数 二、将sqlite3集成到项目&#xff0c;实现増删改查 三、封装DBManager 四、Demo 一、sqlite3常用函数及解释 &#xff08;1&#xff09;sqlite3_open: 用来创建和打开数据库文件&#xff0c;接收两个参数&#xff0c;第一个是数据库…

网上搜集了点资料,学web的人互相分享共同进步吧(php编码的好习惯必须养成)...

网上搜集了点资料&#xff0c;学web的人互相分享共同进步吧 一、优秀的代码应该是什么样的&#xff1f; 优秀的PHP代码应该是结构化的。大段的代码应该被分割整理成一个个函数或方法&#xff0c;而那些不起眼的小段代码则应该加上注释&#xff0c;以便日后清楚它们的用途。而且…

div模拟textarea文本域轻松实现高度自适应——张鑫旭

by zhangxinxu from http://www.zhangxinxu.com本文地址&#xff1a; http://www.zhangxinxu.com/wordpress/?p1362 一、关于textarea文本域以及高度自适应 textarea标签为表单元素&#xff0c;一般用在多行文字的输入。在web应用上常见的是评论输入框&#xff0c;微博信息输入…

【iOS】Mapkit的使用:地图显示、定位、大头针、气泡等

以前做项目用高德地图SDK&#xff0c;需要注册账号和AppID&#xff0c;然后下载SDK集成到项目中&#xff0c;比较麻烦&#xff0c;这几天看了下苹果自带的MapKit框架&#xff0c;感觉挺好用&#xff0c;官方文档也介绍得很详细&#xff0c;所以按照官方文档写了个demo&#xff…

java.lang.NoSuchMethodError: org.springframework.core.io.ResourceEditor错误

一般是jar包冲突&#xff0c;或者某些jar包版本不同。 如上&#xff0c;spring其他包的版本均为4.2.5&#xff0c;而spring-webmvc的jar包为1.2.6版本&#xff0c;造成版本冲突。 把该包版本改为4.2.5&#xff0c;宣告成功&#xff01; 转载于:https://www.cnblogs.com/toSeeMy…

SDUTOJ 1293 乘积最大的分解(数论)

乘积最大的分解思路&#xff1a; 让分解出来的因子有尽可能多的3&#xff0c;剩下的用2补全。 最开始思路错了&#xff0c;WA了好长时间 &#xff01; 函数中n 1的情况应该是不用&#xff0c;经测试数据中没有这组。 *注意用 long long 99的时候会超int的数据范围 1 #include …

列表及字典生成式

列表生成式&#xff1a; 列表生成式就是一个用来生成列表的特定语法形式的表达式。 语法格式&#xff1a; [exp for iter_var in iter] 迭代iter中的每个元素&#xff1b; 每次迭代都先把结果赋值给iter_var&#xff0c;然后通过exp得到一个新的计算值&#xff1b; 最后把…

[SQL基础教程] 1-5 表的删除和更新

[SQL基础教程] 1-5 表的删除和更新 表的删除 语法DROP TABLE <表名>; 法则 1-12 删除的表无法恢复 表定义的更新 语法ALTER TABLE<表名> ADD COLUMN<列的定义>; // 添加列 ALTER TABLE<表名> DROP COLUMN<列的定义>; // 删除列 ps: **Oracle、SQ…

【iOS】自定义控件入门:可拖动的环形进度

有时候UIKit的标准控件并不能满足我们的需求&#xff0c;因此我们可以通过自定义控件得到满足我们需求的控件&#xff0c;例如这篇文章将教你如何自定义一个圆形的进度条&#xff0c;并且用户可以通过拖动进度条上的手柄来改变进度值。主要参考了这篇文章&#xff1a;HOW TO BU…

在.NET2.0中解析Json和Xml

在.NET2.0中解析Json和Xml 在.NET解析json有很多方法&#xff0c;这里介绍最简单也用的最多的一种。 一、添加引用 解析Json&#xff0c;先下载开源控件 Newtonsoft.Json.dll 下载地址&#xff1a;http://files.cnblogs.com/gosky/Newtonsoft.Json%E9%9B%86%E5%90%88.zip 解压以…

虚拟机的基本操作

1、用户界面 [kioskfoundation156 Desktop]$ kiosk #打开shell的用户 #分隔符 foundation156 #主机名称 Desktop #工作目录名称 $ ##身份提示符&#xff0c;#表示超级用户&#xff0c;$表示普通用户 特别注意&a…

strong assign属性

strong:这要求运行时自动地保留对这个对象的引用。换而言之&#xff0c;ARC&#xff08;Automatic Reference Counting&#xff09;在运行时会一直把这个对象保留在内存里&#xff0c;直到它不再被任何其他对象引用。之后&#xff0c;其所占的内存会被自动释放。assign:表示这…

iOS7的界面上移问题

第一种方法&#xff1a;修改BaseSDK XCode5的默认BaseSDK是iOS7&#xff0c;所以要修改成工程文件创建时的BaseSDK。但是XCode5中默认只带有iOS7的SDK&#xff0c;所以要想能做到更改SDK&#xff0c;我们就要添加旧的SDK。 1.从苹果开发者中心下载旧版本XCode&#xff0c;https…

【Android】ActionBar的使用(1)

前&#xff08;fei&#xff09;言&#xff08;hua&#xff09;&#xff1a;转行iOS开发半年&#xff0c;很久没接触Android了&#xff0c;前几天去上课&#xff0c;听着实在无聊&#xff0c;随手拿了同学的一本《Android UI设计》&#xff0c;发现有好多基础知识自己虽然用过&a…

装饰器及例题分析

知识点&#xff1a; 装饰器的定义&#xff1a; - 装饰器的实现是函数里面嵌套函数; - 装饰器的本质是一个函数&#xff0c; 它可以让其他函数在不需要做任何代码改动的前提下增加额外的功能; - 装饰器需要传递一个函数&#xff0c; 返回值也是一个函数对象. 1、map函数 def …

iOS开发系列--让你的应用“动”起来

概览 在iOS中随处都可以看到绚丽的动画效果&#xff0c;实现这些动画的过程并不复杂&#xff0c;今天将带大家一窥iOS动画全貌。在这里你可以看到iOS中如何使用图层精简非交互式绘图&#xff0c;如何通过核心动画创建基础动画、关键帧动画、动画组、转场动画&#xff0c;如何通…

ios app 砸壳

这里介绍使用dumpdecrypted砸壳。原理是用DYLD_INSERT_LIBRARIES这个环境变量加载脱壳的动态链接库dumpdecrypted.dylib 1.ssh连接上越狱的机器&#xff0c;输入密码alpine ssh root192.168.7.116 2.打开要砸的app&#xff0c;ps aux | grep var找到它的目录 yigewangde-iPhone…

基于visual Studio2013解决面试题之0804复杂链表

&#xfeff;&#xfeff;&#xfeff;题目解决代码及点评/*复杂链表的拷贝&#xff0c;现在有一个复杂链表&#xff0c;完成一个clone函数拷贝一个链表复杂链表是指struct Node{struct Node* _next;struct Node* _sibling; // sibling指向链表中任意一个节点&#xff0c;或者…

python考试编程题

3. a: while True: s raw_input(变量名为:) if s exit: print 退出 break #判断是否由字母或下划线组成 if s[0].isalpha() or s[0] _: for i in s[1:]: if not (i.isalnum() or i _): print %s变量…

【分享】bootstrap学习笔记

一、基础知识 1.整体架构以响应式设计为理念&#xff0c;css组件、js插件jquery、基础布局组件和12栅格系统搭建。1.1响应式设计&#xff1a;结合media query查询&#xff0c;适应更多设备&#xff0c;自动适应用户的设备环境&#xff0c;不必为每个终端做一个特定的版本。2.cs…

大三下学期总结

本学期的最后一门考试已经考完了&#xff0c;就相当于本学期要结束了&#xff0c;本学期结束了&#xff0c;就相当于大学的学习生活接近尾声了。感觉大三下开学也只在不久之前&#xff0c;但是真的要结束了&#xff0c;我觉得这学期实在是过得太充实了&#xff0c;一直是在追着…

通过 cygwin64 自己编译对应的 Tera Term cyglaunch.exe

步骤如下&#xff1a; 将 cygterm.tar.gz解压到任意目录&#xff0c;当然要cygwin容易操作。&#xff08;本例直接放到$HOME目录下&#xff0c;启动cygwin后的默认目录&#xff0c;如果之前没有更改的话&#xff09;将 Makefile 中的 -mno-cygwin 选项删除。执行make&#xff0…

面向对象概念及三大特点

面向对象&#xff1a; 面向对象的基本概念 面向对象 oop : object oriented programming 我们之前学习的编程方式就是面向过程的 面向过程和面向对象&#xff0c;是两种不同的编程方式 对比面向过程的特点&#xff0c;可以更好的了解什么是面向对象 过程和函数(都是对一段…

【Android】ViewPager实现无限循环滚动

最近做的一个项目&#xff0c;客户要求在ViewPager实现的主页面中滑动到最后一页后继续滑动能返回到第一页&#xff0c;也就是实现无限循环滚动&#xff0c;效果如下&#xff1a; 看了下ViewPager没有滑到尽头的回调方法&#xff0c;因此想到的解决方案是&#xff0c;在原来的最…

LabVIEW 三维机器人展示

本程序是使用solidworks绘制模型图,通过LabVIEW 2013导入wrl文件完成. 程序效果如下: (工程文件) (3维机器人模型) (控制界面,未做美化....因为实际上这部分程序只是一小部分,主程序运行时,这部分面板是不显示的~\(≧▽≦)/~啦啦啦) 程序下载: 百度网盘: http://pan.baidu.com/…

SqlServer2008查询性能优化_第一章

转载于:https://www.cnblogs.com/MiaoXin/p/5813207.html

Python之类

1、类的结构 1.使用面向对象开发&#xff0c;第一步是设计类 2.使用 类名() 创建对象&#xff0c;创建对象的动作有两步 1.在内存中为对象分配空间 2.调用初始化方法__init___ 为对象初始化 3.对象创建后&#xff0c;内存中就有了一个对象的实实在在的存在--实例 因此…

祝大家圣诞节快乐!

在圣诞节来临之际&#xff0c;分享这份网页的代码&#xff0c;祝愿大家圣诞节快乐&#xff01;点击这里查看效果 以下是源代码&#xff0c;可以保存到html文件打开看效果&#xff1a; 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "ht…

【iOS官方文档翻译】UICollectionView与UICollectionViewFlowLayout

&#xff08;一&#xff09;先来简单回顾一下UICollectionView *UICollectionView的简单使用可以看我以前写的这篇博文&#xff1a;UICollectionView的基本使用 UICollectionView与UITableView很相似&#xff0c;必须实现两个代理&#xff1a;UICollectionViewDataSource和UI…

python之文件

1、什么是文件指针&#xff1f; 文件指针 文件指针标记从哪个位置开始读取数据 第一次打开文件时&#xff0c;通常文件指针会指向文件的开始位置 当执行了read方法后&#xff0c;文件指针会移动到读取内容的末尾 创建一个当前目录下的文件pass 内容为&#xff1a; westos …