标志位(Flag)

        在Python中,标志位(Flag)通常是一个用于表示某种状态或条件的布尔变量。它可以用来跟踪程序中的某个特定状态,以便在需要时进行相应的操作或决策。

        标志位可以是一个简单的布尔变量,其值为True或False,表示某个条件是否满足。例如:

is_logged_in = True has_permission = False

        在上述示例中,is_logged_inhas_permission都是标志位变量。is_logged_in表示用户是否已登录,has_permission表示用户是否具有特定权限。

标志位还可以作为程序的控制开关使用,在某些条件下启用或禁用特定的功能。例如:

debug_mode = True

if debug_mode:
    # 执行调试相关操作
    print("你没有获得相应的权限")
else:
    # 正常运行
    print("你在练练吧.")

        在上述示例中,debug_mode是一个标志位变量,用于控制是否启用调试模式。根据标志位的值,程序会执行不同的代码路径。

        总而言之,标志位在Python中常用于表示状态、条件或控制开关,用于根据需要执行不同的操作或决策。

 实列:

biaozhi = False

name = "maojingyi"
password = '123456'

user = input('输入用户名:')
mima = input('请输入密码:')

if user == name and mima == password:
    biaozhi = True
    print("登陆成功")
else:
    print('登陆失败')

登陆案例(while循环嵌套+tag标志位

biaozhi = False

name = "maojingyi"
mima = '123456'
while not biaozhi:
    username = input("请输入用户名:")
    password = input("请输入密码")

    zhiwu = False

    while not zhiwu:
        if username == name and mima == password:
            print('登陆成功!')
            biaozhi = True
            zhiwu = True

        else:
            print("登陆失败请重新登录")
            break



# 请输入用户名:dasn
# 请输入密码45654
# 登陆失败请重新登录
# 请输入用户名:maojingyi
# 请输入密码123456
# 登陆成功!


 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您可以按照以下步骤设置外部中断并将标志位 `flag1` 置为 1: 1. 配置引脚 PB1 为输入模式。 2. 配置外部中断触发方式为上升沿触发。 3. 编写中断服务函数,在函数中将 `flag1` 置为 1。 以下是一个简单的示例代码,展示了如何在 STM32F407VET6 上完成这个任务: ```c #include "stm32f4xx.h" volatile uint8_t flag1 = 0; // 定义一个全局变量作为标志位,加上 volatile 关键字以确保可见性 void EXTI1_IRQHandler(void) { if (EXTI_GetITStatus(EXTI_Line1) != RESET) // 检查是否发生了中断 { flag1 = 1; // 将标志位 flag1 置为 1 EXTI_ClearITPendingBit(EXTI_Line1); // 清除中断标志位 } } void EXTI_Configuration(void) { RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG, ENABLE); // 使能 SYSCFG 时钟 GPIO_InitTypeDef GPIO_InitStructure; EXTI_InitTypeDef EXTI_InitStructure; NVIC_InitTypeDef NVIC_InitStructure; // 配置 PB1 引脚为输入模式 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN; GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL; GPIO_Init(GPIOB, &GPIO_InitStructure); // 配置外部中断触发方式为上升沿触发 SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOB, EXTI_PinSource1); EXTI_InitStructure.EXTI_Line = EXTI_Line1; EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt; EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising; EXTI_InitStructure.EXTI_LineCmd = ENABLE; EXTI_Init(&EXTI_InitStructure); // 配置中断优先级 NVIC_InitStructure.NVIC_IRQChannel = EXTI1_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x00; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x00; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure); } int main(void) { EXTI_Configuration(); // 配置外部中断 while (1) { // 在主循环中可以执行其他任务 } } ``` 在上述代码中,我们首先定义了一个全局变量 `flag1` 作为标志位。然后,通过 `EXTI_Configuration` 函数配置了 PB1 引脚为输入模式,并将外部中断触发方式设置为上升沿触发。在 `EXTI1_IRQHandler` 中断服务函数中,我们检查中断是否发生,并将 `flag1` 置为 1。在 `main` 函数的主循环中,可以执行其他任务。 请注意,在使用 STM32CubeMX 或其他相关工具生成的代码中,可以使用类似的方法进行配置和中断服务函数的编写。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值