【Python】第011课:函数和字符串的应用,设计一个生成指定长度验证码的函数。设计一个函数返回给定文件名的后缀名。在终端中显示跑马灯(滚动)文字。

目录

例子1:设计一个生成指定长度验证码的函数。

例子2:设计一个函数返回给定文件名的后缀名。

例子3:在终端中显示跑马灯(滚动)文字。

将一颗色子掷6000次,统计每个点数出现的次数。

定义和使用列表


  • 在Python中,数值类型是标量类型,也就是说这种类型的变量没有可以访问的内部结构;而字符串类型是一种结构化的、非标量类型,所以才会有一系列的方法可供调用

例子1:设计一个生成指定长度验证码的函数。

import random

ALL_CHARS = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'


def generate_code(code_len=6):
    code = ''
    for i in range(code_len):
        # 产生0到字符串长度减1范围的随机数作为索引
        index = random.randrange(0, len(ALL_CHARS))
        # 利用索引运算从字符串中取出字符并进行拼接
        code += ALL_CHARS[index]
    return code
for _ in range(10):
    print(generate_code())

D:\装机软件\python\python.exe "D:/python code2020/test01/s生成验证码.py"
EkTT74
qkDO5k
8mSa2Z
jjklNg
z14UQF
sA7vKJ
iIhWlu
3zn87X
1VF6hJ
1Ra93v

Process finished with exit code 0

例子2:设计一个函数返回给定文件名的后缀名。

  1. 文件名通常是一个字符串,而文件的后缀名指的是文件名中最后一个.后面的部分,也称为文件的扩展名,
  2. 它是某些操作系统用来标记文件类型的一种机制,例如在Windows系统上,后缀名exe表示这是一个可执行程序,而后缀名txt表示这是一个纯文本文件。
  3. 需要注意的是,在Linux和macOS系统上,文件名可以以.开头,表示这是一个隐藏文件,像.gitignore这样的文件名,.后面并不是后缀名,这个文件没有后缀名或者说后缀名为''
def get_suffix(filename):
    """获取文件名的后缀名
    :param filename: 文件名
    :return: 文件的后缀名
    """
    # 从字符串中逆向查找.出现的位置
    pos = filename.rfind('.')
    # 通过切片操作从文件名中取出后缀名
    if pos>0 and pos<len(filename)-1:
        return filename[pos+1:]
    else:
        return '无法返回'


print(get_suffix('readme.txt'))       # txt
print(get_suffix('readme.txt.md'))    # md
print(get_suffix('.readme'))          #
print(get_suffix('readme.'))          #
print(get_suffix('readme'))           #

D:\装机软件\python\python.exe "D:/python code2020/test01/w文件后缀名.py"
txt
md
无法返回
无法返回
无法返回

Process finished with exit code 0

例子3:在终端中显示跑马灯(滚动)文字。

实现跑马灯文字的原理非常简单,把当前字符串的第一个字符放到要输出的内容的最后面,把从第二个字符开始后面的内容放到要输出的内容的最前面,通过循环重复这个操作,就可以看到滚动起来的文字。两次循环之间的间隔可以通过time模块的sleep函数来实现,而清除屏幕上之前的输出可以使用os模块的system函数调用系统清屏命令来实现。

import os
import time

content = '  是  我  在  做 多  情  种            '
while True:
    # Windows清除屏幕上的输出:os.system('cls')
    # macOS清除屏幕上的输出:os.system('clear')
    os.system('cls')
    print(content)
    # 休眠0.2秒(200毫秒)
    time.sleep(0.2)
    content = content[1:] + content[0]


D:\装机软件\python\python.exe "D:/python code2020/test01/p跑马灯文字.py"
  是  我  在  做 多  情  种            
 是  我  在  做 多  情  种             
是  我  在  做 多  情  种              
  我  在  做 多  情  种              是
 我  在  做 多  情  种              是 
我  在  做 多  情  种              是  
  在  做 多  情  种              是  我
 在  做 多  情  种              是  我 
在  做 多  情  种              是  我  
  做 多  情  种              是  我  在
 做 多  情  种              是  我  在 
做 多  情  种              是  我  在  
 多  情  种              是  我  在  做
多  情  种              是  我  在  做 
  情  种              是  我  在  做 多
 情  种              是  我  在  做 多 
情  种              是  我  在  做 多  
  种              是  我  在  做 多  情
 种              是  我  在  做 多  情 
种              是  我  在  做 多  情  
              是  我  在  做 多  情  种
             是  我  在  做 多  情  种 
            是  我  在  做 多  情  种  
           是  我  在  做 多  情  种   
          是  我  在  做 多  情  种    
         是  我  在  做 多  情  种     
        是  我  在  做 多  情  种      
       是  我  在  做 多  情  种       
      是  我  在  做 多  情  种        
     是  我  在  做 多  情  种         
    是  我  在  做 多  情  种          
   是  我  在  做 多  情  种           

将一颗色子掷6000次,统计每个点数出现的次数。

我们可以用1到6均匀分布的随机数来模拟掷色子,然后用6个变量分别记录每个点数出现的次数,

import random

f1 = 0
f2 = 0
f3 = 0
f4 = 0
f5 = 0
f6 = 0
for _ in range(6000):
    face = random.randint(1, 6)
    if face == 1:
        f1 += 1
    elif face == 2:
        f2 += 1
    elif face == 3:
        f3 += 1
    elif face == 4:
        f4 += 1
    elif face == 5:
        f5 += 1
    else:
        f6 += 1
print(f'1点出现了{f1}次')
print(f'2点出现了{f2}次')
print(f'3点出现了{f3}次')
print(f'4点出现了{f4}次')
print(f'5点出现了{f5}次')
print(f'6点出现了{f6}次')
  • 在Python中我们可以通过容器类型的变量来保存和操作多个数据,我们首先为大家介绍列表(list)这种新的数据类型。

定义和使用列表

在Python中,列表是由一系元素按特定顺序构成的数据序列,这样就意味着定义一个列表类型的变量,可以保存多个数据,而且允许有重复的数据。跟上一课我们讲到的字符串类型一样,列表也是一种结构化的、非标量类型,操作一个列表类型的变量,除了可以使用运算符还可以使用它的方法。

在Python中,可以使用[]字面量语法来定义列表,列表中的多个元素用逗号进行分隔,代码如下所示。

items1 = [35, 12, 99, 68, 55, 87]
items2 = ['Python', 'Java', 'Go', 'pluto']

除此以外,还可以通过Python内置的list函数将其他序列变成列表。准确的说,list并不是一个函数,而是创建列表对象的构造器(后面会讲到对象和构造器这两个概念)。

items1 = list(range(1, 10))
print(items1)
items2 = list('pluto')
print(items2)  

[1, 2, 3, 4, 5, 6, 7, 8, 9]
['p', 'l', 'u', 't', 'o']

Process finished with exit code 0

列表是一种可变数据类型,也就是说列表可以添加元素、删除元素、更新元素,这一点跟我们上一课讲到的字符串有着鲜明的差别。字符串是一种不可变数据类型,也就是说对字符串做拼接、重复、转换大小写、修剪空格等操作的时候会产生新的字符串,原来的字符串并没有发生任何改变。

课程链接:https://github.com/jackfrued/Python-Core-50-Courses/blob/master

 

明月光光明月光,

家住城南谢家巷。

春来堂前花满枝,

秋有燕子绕北梁。

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值