初识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)