初识python

实现用户登入验证

输入

#!/usr/bin/env python
# -*- coding: utf-8 -*-

# 将用户输入的内容赋值给 name 变量
name = raw_input("请输入用户名:")

# 打印输入的内容
print name

输入密码时,如果想要不可见,需要利用getpass 模块中的 getpass方法,即

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import getpass

# 将用户输入的内容赋值给 name 变量
pwd = getpass.getpass("请输入密码:")

# 打印输入的内容
print pwd

需求、用户登陆验证

#!/usr/bin/env python
# -*- coding: encoding -*-

# 提示输入用户名和密码

# 验证用户名和密码
#     如果错误,则输出用户名或密码错误
#     如果成功,则输出 欢迎,XXX!


import getpass


name = raw_input('请输入用户名:')
pwd = getpass.getpass('请输入密码:')

if name == "aa" and pwd == "cmd":
    print "欢迎,aa!"
else:
    print "用户名和密码错误"

如果用户输入错了,即不能重新输入,如果能重新输入,我们可以用到while循环,并且记录用户输入出错的次数,如果超过三次,则提示不能再次输入了,如果三次内登入成功,则提示登入成功


# 记录用户出错的次数,默认为0
number = 0
right_name = "test"
right_passwd = "111111"
# 因为用户输入出错的机会不能超过三次,所以我们可以设为<3
while number < 3:
    name = input("请输入用户名:")
    pwd = input('请输入密码:')
    if name == right_name and pwd == right_passwd:
        print("登入成功了")
        break
    else:
        print("请输入正确的用户名或密码")
        number += 1
else:
    print("已经试过了三次,请稍后再试")

元素分类

有如下值集合 [11,22,33,44,55,66,77,88,99,90…],将所有大于 66 的值保存至字典的第一个key中,将小于 66 的值保存至第二个key的值中。
即: {‘k1’: 大于66的所有值, ‘k2’: 小于66的所有值}

dic = {} #定义一个字典
ll = [11, 22, 33, 44, 55, 66, 77, 88, 90]

for i in ll:
    if i >66:
    #判断集合中大于66的,则判定第一个key是否存在,存在追加,没有则赋值
            if 'k1' in dic.keys():
                                    dic['k1'].append(i)
            else:
                dic['k1'] = [i, ]
    else:
            if 'k2' in dic.keys():
               dic['k2'].append(i)
            else:
                dic['k2'] = [i, ]

print(dic)

购物车

功能要求:
- 要求用户输入总资产,例如:2000
- 显示商品列表,让用户根据序号选择商品,加入购物车
- 购买,如果商品总额大于总资产,提示账户余额不足,否则,购买成功。

#商品列表
goods = [
    {"name": "电脑","price": 100},
    {"name": "游艇", "price": 900},
    {"name": "鼠标","price": 20}
]
all_ass = input("总资产")
all_ass = int(all_ass)#转化为int类型
shop_cars = {}# 定义为{"price": item["price"], "num": 1}
while True:
    for i in goods:
        print(i)
    i2 = input("请输入你要购买的商品,结算请输入y/Y")
    if i2.lower() == "y":
        break
    for item in goods:
        if i2 == item["name"]:
            if i2 in shop_cars.keys():
                shop_cars[i2]["num"] += 1
            else:
                shop_cars[i2] = {"price": item["price"], "num": 1}

print(shop_cars)
all_sum = 0
for i,k in shop_cars:
    print(i,k["price"])
    # print(v["price"])
    # all_sum += v["price"] * v["num"]

if all_sum > all_ass:
    print("资产不够")
else:
    print("资产够了")

打印九九乘法表

for x in range(1,10):
       for y in range(1,x+1):
              print(x,"*",y,"=",x*y,' ',end='')#end=''不换行
       print() # 换行

二分法查找

data = [1, 3, 6, 7, 9, 12, 14, 16, 17, 18, 20, 21, 22, 23, 30, 32, 33, 35]
def binary_search(dataset,findNum):
    print(dataset)
    if len(dataset) > 1:
        mid = int(len(dataset)/2)
        if dataset[mid] == findNum:
            print("找到数字了",findNum)
        elif dataset[mid] > findNum:
            print("数字在左边")
            return binary_search(dataset[0:mid],findNum)
        else:
            print("数字在右边")
            return binary_search(dataset[mid+1:],findNum)
    else:
        if dataset[0] == findNum:
            print("数字找到了",findNum)
        else:
            print("找不到了,数字不在列表里面")
binary_search(data,33)

冒泡排序

data = [1, 14, 16, 17, 18, 20, 21, 3, 6, 7, 9, 112, 22, 23,33, 35, 30, 35 ]

for i in range(len(data)):
    for j in range(len(data[:-1])-i):
        if data[j] > data[j+1]:
            temp = data[j]
            data[j] = data[j+1]
            data[j+1] = temp
print(data)
posted @ 2016-10-23 22:54  xiaoganghu  阅读(183)  评论(0编辑  收藏  举报