精华内容
下载资源
问答
  • 有时候我们写while循环时是多层嵌套的,有多个while语句,如果满足某一条件break的话,因为break只能跳出与之最近的...Break1=0#利用标志位Break1跳出第二层while循环 while i<20: while j<10: if (i==5)and

    有时候我们写while循环时是多层嵌套的,有多个while语句,如果满足某一条件break的话,因为break只能跳出与之最近的while或for循环,但是我们不想写很多个判断条件,这样代码的有效性和运行速度都会收到影响。所以可以采用标志位跳出多层循环。
    下面给一个小的例子,可以尝试调试一下:

    #break跳出两层循环
    i=0;j=0
    Break1=0#利用标志位Break1跳出第二层while循环
    while i<20:
        while j<10:
            if (i==5)and (j==8):
                Break1=1
                break
            else:
                j=j+1
        if Break1==1:
            break
        else:
            i=i+1
            j=0
    
    展开全文
  • 1.建议线程正常停止-----》利用次数,不建议死循环 2.建议使用标志位-----》设置一个标志位 3.不要使用stop或者destroy等过时或者jdk不建议的方法 *这里我们使用标志位:当主线程到第90次时停止子线程 //测试stop //...

    线程停止的方式

    1.建议线程正常停止-----》利用次数,不建议死循环
    2.建议使用标志位-----》设置一个标志位
    3.不要使用stop或者destroy等过时或者jdk不建议的方法

    *这里我们使用标志位:当主线程到第90次时停止子线程

    //测试stop
    //1.建议线程正常停止-----》利用次数,不建议死循环
    //2.建议使用标志位-----》设置一个标志为
    //3.不要使用stop或者destroy等过时或者jdk不建议的方法
    public class TextThread5  implements Runnable {
    
        //设置一个标志位
        private boolean flag=true;
    
        @Override
        public void run() {
            int i=0;
            while (flag){
                System.out.println("子线程"+i++);
            }
        }
    
        //设置一个公开的方法停止线程,转换标志位
        public void stop(){
            this.flag=false;
        }
    
        public static void main(String[] args) {
                TextThread5 textThread5=new TextThread5();
                new Thread(textThread5).start();
            for (int i = 0; i < 100; i++) {
                System.out.println("main线程"+i);
                if (i==90){
                    //调用stop方法切换标识符,让线程停止
                    textThread5.stop();
                    System.out.println("子线程该停止了");
                }
            }
        }
    }
    
    

    效果:
    在这里插入图片描述

    展开全文
  • 文章目录学习教材第七章 用户输入和while循环1、函数 input()2、使用input获取数值3、取模运算符4、while 循环5、使用标志、break和continue6、使用 while 循环处理列表7、利用while循环删除多个相同元素8、使用用户...

    学习教材

    在这里插入图片描述

    第七章 用户输入和while循环

    1、函数 input()

    name=input('Please enter your name:')
    print('hello,'+name)  
    

    输出结果:
    Please enter your name:1900
    hello,1900

    当要显示的提示语较长的时候我们可以将他存到变量里,再传给input

    prompt = "If you tell us who you are, we can personalize the messages you see."
    prompt += "\nWhat is your first name? "
    name=input(prompt)
    print('hello,'+name)  
    

    输出结果:
    If you tell us who you are, we can personalize the messages you see.
    What is your first name? 1900
    hello,1900

    2、使用input获取数值

    要知道,使用函数input()时,Python将用户输入解读为字符串。
    即使你输入数字,也会被当做字符串存起来。不能将其当作数字使用。
    为解决这个问题,可使用函数int(),它让Python将输入视为数值。函数int()将数字的字符串表示转换为数值表示

    num=input('please enter a num:')
    num=int(num)
    print(num+4)  #转换后 可以做加法运算
    

    输出结果:
    please enter a num:1
    5

    3、取模运算符

    就正常取模运算,大部分语言都一样

    print(5%3) 
    print(3%5) 
    print(4%2)
    

    2
    3
    0

    4、while 循环

    常规语法,while后边跟的表达式如果是真,那就一直循环,如果假,那就终止循环
    经典应用:猜数字游戏

    num=55
    ans=-1
    while ans!=num:
        if ans==-1:
            ans=input('Please Guess!(0-100):')
            ans=int(ans)
        elif ans>num:
            print('too big!')
            ans=input('Guess:')
            ans=int(ans)
        elif ans<num:
            print('too small!')
            ans=input('Guess:')
            ans=int(ans)
    print('Congratulations, you guessed it!')
    

    输出结果:
    Please Guess!(0-100):5
    too small!
    Guess:6
    too small!
    Guess:70
    too big!
    Guess:50
    too small!
    Guess:54
    too small!
    Guess:55
    Congratulations, you guessed it!

    利用while循环向列表中添加元素,若添加到重复元素,就结束
    注意这个程序里面,虽然说让你输入一个数字,但是其实存进去的是字符串,并不是数字

    a=[]
    ans='start'
    while ans not in a:
        a.append(ans)
        ans=input('Please enter a num:')
        
    print(a)
    

    输出结果:
    Please enter a num:1
    Please enter a num:2
    Please enter a num:3
    Please enter a num:4
    Please enter a num:5
    Please enter a num:1
    [‘start’, ‘1’, ‘2’, ‘3’, ‘4’, ‘5’]

    5、使用标志、break和continue

    这个就不多说了,用法简单,和C语言作用一样
    标志变量,开关变量,break退出循环, continue返回开始继续循环
    注意:在python里面标志可以设置为True或者False(相当于布尔变量),注意T和F大写!!!

    6、使用 while 循环处理列表

    创建一个新用户列表,利用while循环把老用户列表转移到新用户列表中

    old_users = ['alice', 'brian', 'candace']
    new_users = [] 
    while old_users:
        s=old_users.pop()
        new_users.append(s)
        
    print(old_users)
    print(new_users)
    

    7、利用while循环删除多个相同元素

    宠物列表中包含多个值为’cat’的元素。要删除所有这些元素,可运行一个while循环,直到列表中不再包含值’cat’

    pets = ['dog', 'cat', 'dog', 'goldfish', 'cat', 'rabbit', 'cat']
    while 'cat' in pets:
        pets.remove('cat')
    
    print(pets) 
    

    8、使用用户输入来填充字典

    创建一个字典,里面存储用户的名字和密码,由用户自己输入

    users={}
    flag=True
    while flag:
        name = input("your name:")
        password = input("your password:")
        users['name']=name
        users['password']=password
        ans=input('Is there anyone else after you? (yes/ no)')
        if ans=='no':
            flag=False
            
    print(users)
    

    输出结果:
    your name:LL
    your password:123
    Is there anyone else after you? (yes/ no)yes
    your name:TT
    your password:123
    Is there anyone else after you? (yes/ no)no
    {‘name’: ‘TT’, ‘password’: ‘123’}

    展开全文
  • 用USS_RPM _R程序循环轮询5个V20设备读取频率和电流值等信息。    图USS_RPM_R读取信息  上图是第一个站点的读取,其采用的控制方式是利用状态位SM0.0置位M13.0 = 1,然后 通过上面的程序段进行读取参数,...

      前两天处理过一个故障,是S7-200 Smart与V20的USS通讯,设备厂家在程序里面利

    用USS_RPM _R程序循环轮询5个V20设备读取频率和电流值等信息。

      

        图 USS_RPM_R读取信息

      上图是第一个站点的读取,其采用的控制方式是利用状态位SM0.0 置位M13.0 = 1, 然后

    通过上面的程序段进行读取参数,然后再利用M13.1这个标志位,再做为下一个站点的XMT和

    EN信号,同时复位M13.0 = 0; 依次类推一直轮询完5个站点后,再重新设置M13.0 = 1 开始新

    一轮的查询。

     

    一、问题

      那天我的同事要修改程序里面一个模拟量的量程,然后修改完后直接下载程序,在下载完毕后

    重新运行程序,PLC有Stop状态切换至RUN状态,这个时候出现了一个问题,那就是USS_RPM_R

    这个程序块卡主了,整个轮询不再执行。

     

    二、分析

      同事搞了很久,没有找出原因,还和其他人一起把V20的参数恢复出厂设置了,但是还是不

    行, 后来就给我打电话,让我过去看看。

      我一过去看就问是不是可以通过PLC控制V20的起停,说是没问题,我也测试过没有问题。

    因此判断通讯没有中断,应该是PLC程序的问题,因为开始是可以的,且V20参数没有修改过。

    后来我仔细分析了一下程序,发现了一个问题,就是厂家的程序利用SM0.0 一直在轮询,且轮

    询启动后不会再利用SM0.0这个信号来重新置位M13.0这个信号。其程序如下所示:

     

     

     

     

      上面三张图是启动的程序,这样的做法存在一个问题,就是中途如果出现异常,比方说下载程序

    导致USS通讯读取中断就不能自动恢复。

     

    三、解决方法

    1、将PLC下电,然后重新上电,这样SM0.0 就会产生一个上升沿激活上面的轮询过程。这个解决方案

    不是最优方案。

    2、不要利用SM0.0做为启动脉冲,而改为SM0.1首次扫描状态位。

    3、方案三,就是检测所有的通讯返回状态, 当所有的状态在1s(或者其他任意设定时间)内通讯状态失败

    后,就自动激活通讯过程。

     

    四、小结

      S7-200 系列的PLC要注意断电重启和利用Smart软件将PLC从Stop切换到RUN状态是有区别的。比方

    说SM0.0这个状态位,还有一些数据保持功能。

     

    --------------------------------------------------------------分割线---------------------------------------------------------------

    1、文章均为个人原创,欢迎转载,转载请保留出处:https://www.cnblogs.com/volcanol/

    2、获取工控PLC、变频器、HMI、计算机、Windows、Linux、嵌入式资料点击:获取资料

    3、如果您觉得文章对您有帮助可转至页面上半部分打赏,或移步:打赏 

    4、或者在页面右下角点推荐哟!!!

    --------------------------------------------------------------分割线--------------------------------------------------------------

     

    转载于:https://www.cnblogs.com/volcanol/p/9983194.html

    展开全文
  • 我在main函数的while循环中参考上述代码,写了STM32适用的代码,让电机转了,但是它停不下来啊! 于是参考了下图,连接找不到了,嘤~,参考第二位仁兄的意见,设置标志位,终于!按键可以让它停下来了! 工具:...
  • 线程5大状态

    2021-01-31 20:29:54
    利用次数,不建议死循环 //2.建议标志位--->设置一个标志位 //3.不要使用stop或者destory等过时或者jdk不建议使用的方法 public class TestStop implements Runnable { //1.线程中定义线程体使用的标识 private...
  • VISIO 2007宝典 5/10

    2012-04-02 14:39:24
     ·使用新增的“数据图形”特性中诸如标志或进度条等形状来形象地表达数据;  ·使用新增的“数据链接”特性方便地把图表连接到ExceI或Access数据源。 内容提要 ----------------------------------------------...
  • 队列基础知识

    2019-09-30 10:35:31
    利用标志位tag实现顺序循环队列: 1 /* */ 2 # include <stdio.h> 3 # include <math.h> 4 # include <stdlib.h> 5 # define QUEUESIZE 100 6 # define MAXSIZE 100 7 typedef ...
  • PHP 插入排序法

    2019-09-29 18:53:18
    1 <?... 2 function insertSort($arr) { 3 //区分 哪部分是已经排序好的 4 //哪部分是没有排序的 5 //找到其中一个需要排序的元素 ... 6 //这个元素 就是从第二个... 7 //利用循环就可以标志出来 8 //i循环控...
  • 守护线程(软件更新)

    2016-07-09 18:04:00
    线程的中断:是可以利用flag标志来让while循环进行中断. 守护线程: 1 2 /* 3 守护线程,如果当一个进程只剩下了守护线程,那么这个守护线程也要结束 4 也就是说主线程没有了,那么这个守护线程也要结束 ...
  • 线程有5大状态: new创建一个线程 start启动一个线程 sleep,wait阻塞一个线程(还有很多其他的关键字可以使线程进入阻塞状态...利用次数,不建议死循环,即使使用循环也要用一个延迟,防止跑死 //2,建议使用标志
  • 1031 查验身份证 (15分)

    2020-05-11 18:39:29
    判断的时候利用flag做标志 每次循环sum都应初始化为0 sum=0应该被写在循环里边 #include <cstdio> #include <cstring> char change[20]= {'1','0','X','9','8','7','6','5','4','3','2'}; int weight...
  • 题目描述: 统计所有小于非负整数 n 的质数的数量。...引入flag标志利用for循环进行判断 代码1: class Solution(object): def countPrimes(self, n): i = 2 res = [] while(i < n): fl.
  • 1049 数列的片段和

    2019-11-04 19:02:34
    刚拿到这道题,我的想法是,利用一个标志来控制所加线段长度,然后通过循环来实现线段和。但是超时了,因为极端情况下我的代码复杂度应该接近O(n^3) , 10^5是一定超时的。所以只对了两个测点; // Console...
  •  6.3.4字符串和字符串结束标志  6.3.5字符数组的输入输出  6.3.6使用字符串处理函数  6.3.7字符数组应用举例  习题 第7章:用函数实现模块化程序设计 7.1为什么要用函数  7.2怎样定义函数  7.2.1为什么要定义...
  • UbuntuChina12

    2010-04-18 12:07:45
    1.2 充分利用网上资源 3 1.2.1 Ubuntu官方网站 3 1.2.2 GNU网站 4 1.2.3 Linux文档项目网站 4 1.2.4 网上求助 5 1.3 随时查询随机文档 6 1.3.1 使用“--help”选项查询 命令的简单说明 6 1.3.2 使用man命令联机查询 ...
  • 5循环结构程序设计115 5.1为什么需要循环控制115 5.2用while语句实现循环116 5.3用do…while语句实现循环118 5.4用for 语句实现循环121 5.5循环的嵌套125 5.6几种循环的比较126 5.7改变循环执行的状态126 5.7.1...
  • Ubuntu权威指南(2/2)

    2010-12-05 09:01:53
    1.2 充分利用网上资源 3 1.2.1 Ubuntu官方网站 3 1.2.2 GNU网站 4 1.2.3 Linux文档项目网站 4 1.2.4 网上求助 5 1.3 随时查询随机文档 6 1.3.1 使用“--help”选项查询 命令的简单说明 6 1.3.2 使用man命令联机查询 ...
  • Ubuntu权威指南(1/2)

    2010-12-05 08:57:03
    1.2 充分利用网上资源 3 1.2.1 Ubuntu官方网站 3 1.2.2 GNU网站 4 1.2.3 Linux文档项目网站 4 1.2.4 网上求助 5 1.3 随时查询随机文档 6 1.3.1 使用“--help”选项查询 命令的简单说明 6 1.3.2 使用man命令联机查询 ...
  • 5章 程序设计的其他方法和技术 5.1 字符串操作 5.1.1 串操作指令简介 5.1.2 串操作指令 5.2 宏功能程序设计 5.2.1 宏定义 5.2.2 宏调用 5.2.3 宏定义与宏调用中的参数 5.2.4 重复汇编伪指令 5.2.5 条件...
  • 5章 程序设计的其他方法和技术 5.1 字符串操作 5.1.1 串操作指令简介 5.1.2 串操作指令 5.2 宏功能程序设计 5.2.1 宏定义 5.2.2 宏调用 5.2.3 宏定义与宏调用中的参数 5.2.4 重复汇编伪指令 5.2.5 条件...
  • C程序设计(第四版).谭浩强.扫描版

    热门讨论 2011-05-31 10:02:13
    5循环结构程序设计114 5.1为什么需要循环控制114 5.2用while语句实现循环115 5.3用do…while语句实现循环117 5.4用for 语句实现循环120 5.5循环的嵌套124 5.6几种循环的比较125 5.7改变循环执行的状态125 5.7.1...
  • C程序设计(第四版)【谭浩强】

    热门讨论 2011-05-25 15:55:43
    5循环结构程序设计114 5.1为什么需要循环控制114 5.2用while语句实现循环115 5.3用do…while语句实现循环117 5.4用for 语句实现循环120 5.5循环的嵌套124 5.6几种循环的比较125 5.7改变循环执行的状态125 5.7.1...
  • 5循环结构程序设计 5.1 为什么需要循环控制 5.2 用while语句实现循环 5.3 用do…while语句实现循环 5.4 用for语句实现循环 5.5 循环的嵌套 5.6 几种循环的比较 5.7 改变循环执行的状态 5.7.1 用break语句提前...
  • C语言大纲及课件

    2014-03-27 19:26:42
    利用break语句、continue语句实现对循环过程的控制。   理解:循环的概念;多重循环的执行过程。  了解:goto语句。 ⑹ 数组  掌握:一维数组、二维数组和字符数组的定义及数据的引用方法;二维数组的存储...

空空如也

空空如也

1 2 3 4 5 ... 8
收藏数 144
精华内容 57
关键字:

循环利用标志5