[简单题]PIN-Code Python实现

题目:(codeWar)

原题链接

题目代码:(第一个版本)

def validate_pin(pin):
    if pin.isnumeric():
        return len(pin) == 4 or len(pin) == 6
    else:
        return False

(第二个版本)

def validate_pin(pin):
    if len(pin) == 4 or len(pin) == 6:
        for s in pin:
            if not s.isdigit():
                return False
        return True
    else:
        return False

(第三个版本——来自网上的题目上的某位大佬)

def validate_pin(pin):
    return len(pin) in (4,6) and pin.isdigit()

Python作为一个追求简单的语言,我觉得他已经做到了!膜一波


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 以下是一种实现方式: ```python import time # 定义每个数字对应的七段数码,0表示不亮,1表示亮 digits = [ [1, 1, 1, 1, 1, 1, 0], # 0 [0, 1, 1, 0, 0, 0, 0], # 1 [1, 1, 0, 1, 1, 0, 1], # 2 [1, 1, 1, 1, 0, 0, 1], # 3 [0, 1, 1, 0, 0, 1, 1], # 4 [1, 0, 1, 1, 0, 1, 1], # 5 [1, 0, 1, 1, 1, 1, 1], # 6 [1, 1, 1, 0, 0, 0, 0], # 7 [1, 1, 1, 1, 1, 1, 1], # 8 [1, 1, 1, 1, 0, 1, 1] # 9 ] # 定义控制GPIO口输出的函数 def set_gpio(pin, value): # 这里假设有一个set_gpio函数可以控制GPIO口的输出 # 具体实现可以根据实际情况进行修改 pass # 定义滚动显示数字的函数 def show_digit(digit): for i in range(8): if digits[digit][i] == 1: set_gpio(i, 1) else: set_gpio(i, 0) time.sleep(0.1) # 循环显示0到9的数字 while True: for i in range(10): show_digit(i) ``` 这个程序通过循环显示0到9的数字,实现了重复滚动显示数字的效果。在show_digit函数中,通过控制GPIO口的输出来控制七段数码管的显示。具体的GPIO口控制方法需要根据实际情况进行修改。 ### 回答2: 可以使用Python编写程序来实现1位七段数码管滚动显示0到9的数字。下面是一个简单实现方法: ```python import time # 七段数码管的数字编码,0-9对应的编码 digits = { 0: '1111110', 1: '0110000', 2: '1101101', 3: '1111001', 4: '0110011', 5: '1011011', 6: '1011111', 7: '1110000', 8: '1111111', 9: '1111011' } # 七段数码管的形状 segments = [' ### ', ' # # ', '# #', '# #', ' # # ', ' ### '] # 数字滚动显示函数 def display_number(number): digit_code = digits[number] for i in range(6): for j in range(7): if digit_code[j] == '1': print(segments[i][j], end='') else: print(' ', end='') print() time.sleep(1) # 暂停1秒钟 # 循环显示0到9的数字 for i in range(10): display_number(i) print('\n' * 2) # 为了视觉效果,数字之间插入两行空白 ``` ### 回答3: Python编写一个程序实现1位七段数码管的滚动显示0到9的数字是非常简单的。我们可以使用Python的turtle库来绘制七段数码管的图形,并使用循环来重复显示0到9的数字。 首先,我们需要导入turtle库并初始化turtle模块。然后,我们可以定义一个函数来绘制每个数字的七段数码管图形。这个函数会根据数字的不同,绘制不同的线段来组成七段数码管的形状。 接下来,我们可以使用一个列表来存储0到9的数字对应的七段数码管图形。每个数字对应一个元素,元素是一个包含七段数码管线段的列表。 然后,我们可以使用一个循环,不断地从数字列表中获取数字对应的数码管图形,并使用turtle库来绘制图形。绘制完一个数字后,可以使用turtle库的clear函数来清除画布,然后绘制下一个数字的图形,以此实现滚动显示的效果。 最后,为了使每个数字持续显示一段时间,可以使用time库的sleep函数来暂停程序的执行一段时间。 示例代码如下: ```python import turtle import time # 初始化turtle模块 turtle.setup(800, 400) window = turtle.Screen() window.bgcolor("black") window.title("七段数码管滚动显示") # 定义函数绘制数字的七段数码管图形 def draw_segment(number): segments = [[(0, 0), (50, 0)], # 横段a [(0, 0), (0, -50)], # 竖段b [(0, -50), (50, -50)], # 横段g [(50, 0), (50, -50)], # 竖段f [(0, 0), (0, 50)], # 竖段e [(0, 50), (50, 50)], # 横段d [(50, 0), (50, 50)]] # 竖段c turtle.hideturtle() turtle.pensize(10) turtle.pencolor("white") for i in range(7): if number[i] == "1": turtle.penup() turtle.goto(segments[i][0]) turtle.pendown() turtle.goto(segments[i][1]) turtle.penup() time.sleep(1) # 暂停1秒钟 # 数字对应的七段数码管图形列表 digit_segments = [["1111110"], # 0 ["0100000"], # 1 ["1011011"], # 2 ["1101011"], # 3 ["0101101"], # 4 ["1100111"], # 5 ["1111111"], # 6 ["0110000"], # 7 ["1111111"], # 8 ["1101101"]] # 9 # 循环显示0到9的数字 while True: for digit in digit_segments: draw_segment(digit) turtle.clear() ``` 这段代码会在窗口中显示一个黑色背景,并重复滚动显示0到9的数字的七段数码管图形,每个数字持续显示1秒钟。你可以根据自己的需要调整窗口大小和数字显示的持续时间。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值