zoukankan      html  css  js  c++  java
  • 简单的例子

    1. 验证随机验证码:
       1 def check_code():
       2     import random
       3     checkcode = ''
       4     for i in range(4):
       5         current = random.randrange(0,4)
       6         if current != i:
       7             temp = chr(random.randint(65,90))
       8         else:
       9             temp = random.randint(0,9)
      10         checkcode += str(temp)
      11     return checkcode
      12 while True:
      13     code = check_code()
      14     print(code)
      15     v = input('>>>')
      16     if v.lower() == code.lower():
      17         print('输入正确!')
      18         break
      19     else:
      20         continue
    2. 替换敏感词汇:
      1 a = '老师'
      2 b = '学生'
      3 content = input('请输入内容:')
      4 if content == a or content == b:
      5     content = a.replace('老师','**')
      6     content = b.replace('学生','**')
      7 print(content)
    3. 根据用户输入内容制作表格:          (!!! 例子中如果输入的是中文,所占用的位数比英文的位数要长,导致对位不整齐,留后期解决)
       1 content = '账户	密码	邮箱
      '
       2 while True:
       3     name = input('请输入用户名:')
       4     if name.lower() == 'q':
       5         break
       6     password = input('请输入密码:')
       7     email = input('请输入邮箱:')
       8     form = '{0}	{1}	{2}
      '
       9     v = form.format(name.title(),password,email)
      10     content = content + v
      11 print(content.expandtabs(20))
      12 
      13 输出:
      14     账户                  密码                  邮箱
      15     Jack                123                 jack@163.com
      16     Alen                456                 alen@163.com
      17     Tom                 789                 tom@163.com
    4. 九九乘法表:先取i为1,进入内循环,循环所有内容后返回上一层循环,继续内循环。当 i=2,v=1,2,3;i=3,v=1,2,3,4每次一轮循环结束后输出值,print默认换行处理。
       1 例:
       2 for i in range(1,10):
       3     count = ''
       4     for v in range(1,i+1):
       5         count += str(v) + '*' + str(i)  + '='+ str(i*v) + '	'
       6     print(count)
       7 
       8 输出:
       9 1*1=1                    # 第一次循环结束;
      10 1*2=2    2*2=4           # 第二次循环结束;
      11 1*3=3    2*3=6     3*3=9    
      12 1*4=4    2*4=8     3*4=12    4*4=16    
      13 1*5=5    2*5=10    3*5=15    4*5=20    5*5=25    
      14 1*6=6    2*6=12    3*6=18    4*6=24    5*6=30    6*6=36    
      15 1*7=7    2*7=14    3*7=21    4*7=28    5*7=35    6*7=42    7*7=49    
      16 1*8=8    2*8=16    3*8=24    4*8=32    5*8=40    6*8=48    7*8=56    8*8=64    
      17 1*9=9    2*9=18    3*9=27    4*9=36    5*9=45    6*9=54    7*9=63    8*9=72    9*9=81
    5. 简单的购物车:(输入总资产,显示商品列表,根据序号选择商品进行购买,如果购买总额大于总资产,提示账户余额不足,否则成功购买。不考虑金额有小数位。    是否继续购买在输入非'yes/no'的值时暂未做处理。)

       1 total = input('请输入总资产:')
       2 while not total.isdigit():
       3     total = input('输入有误,请输入正确的金额:')
       4 total = int(total)
       5 goods = [
       6     {'name':'电脑','price':1999},
       7     {'name':'鼠标','price':10},
       8     {'name':'键盘','price':20},
       9     {'name':'音箱','price':998},
      10     ]
      11 # 索引:goods[0]['name']=电脑,goods[0]['price']=1999;
      12 print('欢迎进入本店:')
      13 while True:
      14     #先制作产品表格;
      15 
      16     print('商品类型'.center(50,'*'))
      17     print('编号'.ljust(8,' '),'品类'.center(30,' '),'价格'.rjust(8,' '))
      18     #使用enumerate方法,进行for循环goods列表;
      19     for x,y in enumerate(goods,1):
      20         # 索引获取goods列表中的值,后可加参数表示开始的编号。x为编号,赋予1开始,y为goods。
      21         print(str(x).ljust(8,' '),str(y['name']).center(34,' '),str(y['price']).rjust(8,' '))
      22     i = input('请根据序号选择商品:')
      23     if i.lower() == 'q':
      24         print('欢迎下次光临!')
      25         break
      26     #判断输入的值是否为数字。
      27     while not i.isdigit() or int(i) > len(goods):
      28         i = input('请输入有效编号:')
      29     #总额大于购买物品的金额的情况,后面的值表示用'i'的取值来索引到金额的值;'z'表余额;
      30     if int(total) >= int(goods[int(i) - 1]['price']):
      31         z = int(total) - int(goods[int(i) - 1]['price'])
      32         total = int(z)
      33         print('购买成功,剩余金额为:' + str(z) + '元。')
      34         a = input('是否继续购买(yes/no):')
      35         if a == 'yes':
      36             continue
      37         else:
      38             print('谢谢购买,欢迎下次光临!')
      39             break
      40     else:
      41         z = int(total)
      42         print('余额不足,无法购买此商品,剩余余额为' + str(z) + '元。')
      43         b = input('是否退出(yes/no):')
      44         if b == 'yes':
      45             print('谢谢购买,欢迎下次光临!')
      46             break
      47         else:
      48             continue
    6.  求某个元素在字符串中出现的位置

       1 def index_words(text):  #将‘jack is a boy.’替入text中
       2     result = []
       3     if text:    #返回0后,result = [0]
       4         result.append(0)
       5     for index,letter in enumerate(text,1):  #index 取编号‘1’开始,letter取text中的值。两者形成对应关系,进行循环取值
       6         if letter == 'a':       #当letter为a时,将所对应的index值添加到result列表中
       7             result.append(index)
       8     return result
       9 
      10 print(index_words('jack is a boy.'))
      11 
      12 输出:
      13 [0, 2, 9]
       1 #使用生成器函数:
       2 def index_words(text):
       3     if text:
       4         yield 0
       5     for index,letter in enumerate(text,1):
       6         if letter == 'a':
       7             yield index
       8 
       9 count = index_words('jack is a boy.')
      10 print(count.__next__())
      11 print(count.__next__())
      12 print(count.__next__())
    7. 以字典方式统计字符串的各种大小写有多少个
       1 #统计字符串中有多少个大写。小写字母或数字跟其它字符,以字典形式返回
       2 def count(test):
       3     upper = 0
       4     lower = 0
       5     digit = 0
       6     other = 0
       7     dic = {}
       8     for i in test:
       9         if i.isupper():
      10             upper += 1
      11         if i.islower():
      12             lower += 1
      13         if i.isdigit():
      14             digit += 1
      15         if not i.isalnum():
      16             other += 1
      17     #字典默认时的参数
      18     dic.setdefault('大写字母',upper)
      19     dic.setdefault('小写字母',lower)
      20     dic.setdefault('数字', digit)
      21     dic.setdefault('其它',other)
      22     return dic
      23 test = 'Jack ID is 012345'
      24 print(count(test))
      25 
      26 输出:
      27 {'大写字母': 3, '小写字母': 5, '数字': 6, '其它': 3}
    8. 杨辉三角
       1 # 杨辉三角
       2 # _*_ coding: utf-8 _*_
       3 def triangles():
       4     s = [1]
       5     while True:
       6         yield s #得到s的值再进行下一行的生成器操作
       7         s =[1] + [s[n] + s[n-1] for n in range(1,len(s))] + [1]
       8 #利用列表生成器,根据行数的不同将每一行的前后两个值进行相加
       9 n = 0
      10 for i in triangles():
      11     print(i)
      12     n = n + 1
      13     if n == 10:
      14         break
    9. 获取用户输入的日期和时间如2015-1-21 9:01:30,以及一个时区信息如UTC+5:00,均是str,编写一个函数将其转换为timestamp:
       1 import re
       2 from datetime import datetime, timezone, timedelta
       3 def to_timestamp(dt_str, tz_str):
       4     # 先转换时间:H = int(re.split(r'[C:]',tz_str)[1]) 使用正则表达式的切分取值
       5     # 时区:zone =timezone(timedelta(hours=H))
       6     # 设置dt的UTC时间:dt.replace(tzinfo=zone)
       7     dt = datetime.strptime(dt_str, '%Y-%m-%d %H:%M:%S') #先将str转为datetime;
       8     tz = dt.replace(tzinfo=timezone(timedelta(hours=int(re.split(r'[C:]', tz_str)[1])))).timestamp()
       9     return tz
      10 
      11 # 测试:
      12 t1 = to_timestamp('2015-6-1 08:10:30', 'UTC+7:00')
      13 assert t1 == 1433121030.0, t1
      14 
      15 t2 = to_timestamp('2015-5-31 16:10:30', 'UTC-09:00')
      16 assert t2 == 1433121030.0, t2
      17 
      18 print('ok')
    10. 根据用户输入的登录名和口令模拟用户注册,计算更安全的MD5,(登录名作为Salt的一部分来计算MD5,从而实现相同口令的用户也存储不同的MD5)
      1 db = {}
      2 def register(username, password):
      3     db[username] = get_md5(password + username + 'the-Salt')
      1 #Hmac算法,得到更安全的口令(比Salt更好)
      2 h = hmac.new(key, message, digestmod='MD5').hexdigest()
       1 # -*- coding: utf-8 -*-
       2 import hmac, random
       3 
       4 def hmac_md5(key, s):
       5     return hmac.new(key.encode('utf-8'), s.encode('utf-8'), 'MD5').hexdigest()
       6 
       7 class User(object):
       8     def __init__(self, username, password):
       9         self.username = username
      10         self.key = ''.join([chr(random.randint(48, 122)) for i in range(20)])
      11         self.password = hmac_md5(self.key, password)
      12 
      13 db = {
      14     'michael': User('michael', '123456'),
      15     'bob': User('bob', 'abc999'),
      16     'alice': User('alice', 'alice2008')
      17 }
      18 
      19 def login(username, password):
      20     user = db[username]
      21     return user.password == hmac_md5(user.key, password)
      22 # 测试:
      23 assert login('michael', '123456')
      24 assert login('bob', 'abc999')
      25 assert login('alice', 'alice2008')
      26 assert not login('michael', '1234567')
      27 assert not login('bob', '123456')
      28 assert not login('alice', 'Alice2008')
      29 print('ok')
  • 相关阅读:
    火车头采集器如何采集QQ群成员中的QQ号
    Unix目录结构的来历
    加速Windows 2003关机速度的设置方法
    win2003 序列号 windows2003 sp2可用序列号大全(准版与企业版)
    自己动手在win2003系统中添加虚拟网卡
    Windows Server 2003下DHCP服务器的安装与简单配置图文教程
    win2003远程桌面怎么切换到多用户?
    Win2003打开网页时总是提示添加网址到信任站点的设置方法
    我们正在招聘java工程师,想来美团工作吗?
    JUC回顾之-AQS同步器的实现原理
  • 原文地址:https://www.cnblogs.com/liqiongming/p/10013980.html
Copyright © 2011-2022 走看看