python 学习笔记-山寨携程(列表,字符串,字典和流程控制总结)

最近学习了Python的一些基础数据结构,这里通过一个小程序做一个小的总结,自己比较偏好字典,故程序中主要使用字典数据结构。

1. 通过用户名和密码认证才能登陆系统,注册后需登陆。

2. 认证通过后,系统会给出几个旅行计划,计划中有可以选择的目的地及旅行天数。

3. 确定购买结束后,结算总消费金额并退出。

期望用到的python知识点有:

1.通用序列的操作和列表的方法。

2.字典的方法。

3.流程控制。

import time
#create authentification list 
authlist={‘zhang01‘:‘1234qwer‘,‘lee10‘:‘1qaz‘,‘wang33‘:‘567890‘}
user=raw_input(‘please enter your username:  ‘)
passwd=raw_input(‘please enter your password:  ‘)

#for key,value in authlist.items():
#    if user== key and passwd==value:
#        print ‘login successful!‘
#    elif user!=key: 
#        print ‘no such account!‘
#    elif passwd!=value:
#        print ‘invalid passwd!‘
#        break
#login verification
#尝试用循环遍历字典方法,但未成功。

while True:
    if user in authlist: 
        if passwd==authlist.get(user):
            print ‘login successful!‘
            break
        else: 
            print ‘invalid password!‘
            passwd=raw_input(‘please enter your password:  ‘)
            continue
    else: 
            print ‘no such account,please register!‘
            newuser= raw_input(‘please enter a username:  ‘)
            if newuser not in authlist:
                    print ‘username is ok!‘
                    newpasswd=raw_input(‘please enter a password:  ‘)
                    authlist.setdefault(newuser,newpasswd)
                    print ‘register successful!‘
                    break
            else: print ‘username is already existed!‘
            
#travel plans offer
c1={‘1‘:100,‘3‘:300,‘5‘:500,‘14‘:1000}
c2={‘1‘:300,‘3‘:500,‘5‘:700,‘14‘:1300}
c3={‘1‘:500,‘3‘:700,‘5‘:900,‘14‘:1500}
c4={‘1‘:700,‘3‘:900,‘5‘:1000,‘14‘:1700}
costs=dict(domestic=c1, japan=c2,europe=c3,usa=c4)
print ‘the costs for different destinations for 1,3,5,14 days: \n‘, costs
print ‘\n‘
time.sleep(3)
shlist={}
index=0
a=1
cost=0
d=0
while a:
        dest=raw_input(‘please choose your destionation: ‘)
        days=raw_input(‘please choose your days of staying: ‘)
        cost=costs[dest][days]
        print ‘you want to spend %s days in %s,and the cost is $%s ‘%    (days,dest,cost)
        shlist[index]=(dest,days,cost)
        index +=1
        d +=cost
        con=raw_input(‘are you done shopping? yes(Y) or no(N): ‘)
        if con==‘Y‘:a=0
        else:a=1
print ‘your shopping cart has %d item:%s, total cost is $%d‘ %(index,shlist.values(),d)
key=raw_input( ‘do you want to check out(C) or delete some item in shopping list(D)?‘)
if key == ‘C‘:
              print ‘your current shopping list is: ‘
              print shlist
              print ‘please pay $%d‘ %d
if key == ‘D‘:
    print shlist
    k=raw_input( ‘please enter the item number you want to delete in your shopping list: ‘)
    shlist.pop(int(k))
    if shlist=={}:
        print ‘your current shopping list is empty‘
    else:
        print ‘your current shopping list is: ‘
        print shlist

参照 http://467754239.blog.51cto.com/4878013/1572203 (全部用列表实现)还有以下几点可以改进:

  1. autenlist和travelplans可以单独存放于txt文件,用open打开,readlines读取。
  2. 通过index返回list中某元素位置,再以此访问与其对应的list中该位置的值。
  3. 可以增加一个预算和余额功能。
时间: 2024-10-11 04:51:20

python 学习笔记-山寨携程(列表,字符串,字典和流程控制总结)的相关文章

Python学习笔记__3.3章 列表生成式

# 这是学习廖雪峰老师python教程的学习笔记 1.概览 列表生成式即List Comprehensions,是Python内置的非常简单却强大的可以用来创建list的生成式 1.生成list [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] list(range(1, 11)) 2.列表生成式 [1x1, 2x2, 3x3, ..., 10x10] [x*x for x in range(1,11)] 3.使用两层循环 >>>[m + n for m in 'ABC'

Python学习笔记五_数据类型(字符串)

已经学习过的数据类型包括:int.float.list.tuple.dict.这篇来单独记录下字符串.单独将字符串这种数据类型写出来,是因为python里有很多非常有用的字符串内置方法. 一.字符串定义 字符串可以存任意类型的字符串,比如名字,一句话等等. 1 name = 'Rebecca' 2 msg = 'Fighting' 二.字符串内置方法 1.常用方法 输出为字符串的方法 a = 'my name is Rebecca' print(a.capitalize()) #将字符串的第一个

Python学习,第五课 - 列表、字典、元组操作

本篇主要详细讲解Python中常用的列表.字典.元组相关的操作 一.列表 列表是我们最以后最常用的数据类型之一,通过列表可以对数据实现最方便的存储.修改等操作 通过下标获取元素 #先定义一个列表 letters = ['a', 'b', 'c', 'd', 'e'] letters[1] #输出:b #列表的索引是从0开始 letters[-1] #输出:e #也可以倒着取,-1既倒数第一个元素 切片:获取列表中多个元素 letters = ['a', 'b', 'c', 'd', 'e'] #

Python学习笔记(四) 列表生成式_生成器

笔记摘抄来自:https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/0014317799226173f45ce40636141b6abc8424e12b5fb27000 本文章仅供自己复习使用,侵删: 列表生成器 # 例如,列出当前目录下的所有文件和目录名,可以通过一行代码实现: import os [d for d in os.listdir('.')] #for循环后面还可以加上

Python学习笔记五:数字和字符串

数据类型是不允许改变的,这就意味着如果改变数字数据类型得值,将重新分配内存空间. Python数字类型转换 int(x [,base ]) 将x转换为一个整数 long(x [,base ]) 将x转换为一个长整数 float(x ) 将x转换到一个浮点数 complex(real [,imag ]) 创建一个复数 str(x ) 将对象 x 转换为字符串 repr(x ) 将对象 x 转换为表达式字符串 eval(str ) 用来计算在字符串中的有效Python表达式,并返回一个对象 tupl

python学习笔记二--列表

一.列表: 1. 任意类型对象的位置相关的有序集合. 2. 没有固定大小. 3. 对偏移量进行赋值及各种方法的调用,修改列表. 4. 列表是序列的一种. 5. 所有对字符串的序列操作对列表均适用. 二.对列表做索引,分片 三.调用内置的函数及方法 四.边界检查 五.嵌套 六.列表解析: 1. 把M里每一行的偏移量为1的元素取出来,并赋值给col2 2. 把M里每一行的偏移量为1的元素取出来并+1 把M里每一行的偏移量为1的元素取出来并取2的余数为0的元素 3.

python学习笔记8:基础(字符串格式化)

参考:http://www.cnblogs.com/wupeiqi/articles/5484747.html Python的字符串格式化有两种方式: 百分号方式.format方式 百分号的方式相对来说比较老,而format方式则是比较先进的方式,企图替换古老的方式,目前两者并存.[PEP-3101] This PEP proposes a new system for built-in string formatting operations, intended as a replacemen

python学习笔记1 循环、列表、元祖、数据类型

if语法:基于python3语法 if a<b: 冒号结尾 print("yes") 注意语句的缩进需要一致,不然会报语法错误. elif a==b: print("a=b") else: print("no") 注释符: # 代表单行注释 '''' '''' 代表多行注释 """""" """""" 也代表多行注释 标准

Python学习笔记(3)--数据结构之列表list

Python的数据结构有三种:列表.元组和字典 列表(list) 定义:list是处理一组有序项目的数据结构,是可变的数据结构. 初始化:[], [1, 3, 7], ['a', 'c'], [1, 's', 'des',256]等 1.增加:append(value).extend(list2).insert(i, value) 2.删除:pop([i]).remove(value) 2.1  i可以是负值 2.2  i超出范围会报out of range错误 2.3  remove只会移除第