简单的while 循环问题

hi 各位高手: 提一个小白问题,愿不吝赐教:
原集合:number = [12,37,5,43,8,3],想要写一个循环语句使得每次 有且仅有一个number中的元素被pop掉,并流到集合now=[]中,而后这些数字被累计到集合done =[]中, 请问这个功能要怎么循环起来。
在网上找到了一个类似的例子:http://www.runoob.com/python/python-while-loop.html
然而感觉写起来还是有些困难,请求高手点播。

2个回答

菜鸟教程里面gif应该理解起来很简单了

weixin_43746317
James the Tomato� 然而并没有办法用起来 。。
10 个月之前 回复

还是在学习一下数据类型的基础吧不懂查收册

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
简单的while 循环问题 遇到报错:'str' object has no attribute 'pop'
hi 各位高手: 愿请各位不吝赐教: 想要实现一个类似于“弹夹”的功能:原集合是number = ('a','b','c','d','e','f'),想要写一个循环语句使得每次 有且仅有一个number中的元素被pop掉,并流到集合now=[]中,而后这些数字被累计到集合done =[]中, 请问这个功能要怎么循环起来。 尝试着写了一个程序,如下: number = ('a','b','c','d','e','f') numerL =list(number) now =[] nowL=list(now) done=[] doneL=list(done) while len(numerL) > 0: numerL = numerL.pop() nowL = numerL.pop(0) doneL = now.append(numerL) print("number列:",numerL) print("now列:",nowL) print("done列",doneL) 但得到报错: Traceback (most recent call last): File "C:/Users/lenovo/PycharmProjects/Test.9.16/tests/have a try.py", line 17, in <module> nowL = numerL.pop() AttributeError: 'str' object has no attribute 'pop' 请问该怎样解决
请教IDEA while循环debug问题
# 想调试一个使用JDBC从数据库读取Blob类型数据的程序,但是试了很多次debug不了其中的while循环 ## 在Servlet实现类的doPost方法中试了一个简单的while循环,发现可以调试 ```java int a=11; int i=0; while (++i<a){ System.out.println(i); } ``` ![图片说明](https://img-ask.csdn.net/upload/201910/02/1570014345_777656.png) ## 代码 ### Servlet doPost ``` String sql = "SELECT * FROM resource WHERE id = ?"; String[] path = new String[1]; path[0] = "F:\\program design\\JavaWeb\\web\\resource\\2.png"; //下面的方法传入数据库连接,接收数据的类,sql语句以及要将数据库中提取的文件放入的路径和sql语句中?的替代 //返回接收数据的类的实例的集合 ArrayList<Datas> arrayList = JDBC.searchBolb(connection, Datas.class, sql, path, 1); PrintWriter writer = response.getWriter(); for (Datas d : arrayList) { writer.println(d); } ``` ### JDBC ```java //重点请看while循环,其他错误只要能调试while循环我自己慢慢找 public static <T> ArrayList<T> searchBolb(Connection connection, Class<T> clazz, String sql, String[] resourcePath, Object... args) { //数据库表中最后一个字段为Blob类型 //输出类中封装Blob资源输出地址 PreparedStatement ps = null; ResultSet result = null; ResultSetMetaData rsmd = null; InputStream is = null; FileOutputStream fos = null; int resourcePathNumber = 0; ArrayList<T> collection = new ArrayList<T>(); try { ps = connection.prepareStatement(sql); for (int i = 0; i < args.length; i++) { ps.setObject(i + 1, args[i]); } result = ps.executeQuery(); rsmd = result.getMetaData(); while (result.next()) { int columnCount = rsmd.getColumnCount(); T t = clazz.getDeclaredConstructor().newInstance(); for (int i = 0; i < columnCount - 1; i++) { Object columnValue = result.getObject(i + 1); String columnLabel = rsmd.getColumnLabel(i + 1); Field field = clazz.getDeclaredField(columnLabel); field.setAccessible(true); field.set(t, columnValue); } Blob blob = result.getBlob(columnCount); String blobLabel = rsmd.getColumnLabel(columnCount); Field field = clazz.getDeclaredField(blobLabel); field.setAccessible(true); field.set(t, resourcePath); is = blob.getBinaryStream(); fos = new FileOutputStream(resourcePath[resourcePathNumber++]); byte[] buffer = new byte[1024]; int len; while ((len = is.read(buffer)) != -1) { fos.write(buffer, 0, len); } collection.add(t); } } catch (SQLException | IOException | NoSuchFieldException | NoSuchMethodException | IllegalAccessException | InstantiationException | InvocationTargetException e) { e.printStackTrace(); } finally { try { ps.close(); is.close(); fos.close(); } catch (SQLException | IOException e) { e.printStackTrace(); } if (collection == null) { System.out.println("Failed to search"); } return collection; } } ```` ![图片说明](https://img-ask.csdn.net/upload/201910/02/1570015047_843639.png) ![图片说明](https://img-ask.csdn.net/upload/201910/02/1570015068_774806.png) <br> 把断点设在144行(while循环第一行),运行到for循环第一行出错(用的f8,不进入方法体)(没有while循环过,这是第一次for循环),这里的错误是结果集关闭,但是显然并没有任何操作使之关闭(我试了另外一个没有问题的方法,报的同样的错误),怀疑是刚开始debug时就已经进行完了while循环,导致结果集关闭 <br> 请问需要把断点设在哪里,或者是怎么样才能解决上述问题?3Q
简单的while 循环结果展示问题
各位高手大家好,因工作需要近期我在尝试写一个脚本: 想要实现以下功能: 从本机指定位置的TXT中读取信息,并存进一个列表numberL之中 逐个处理列表numberL的元素,并将每次处理的单个元素放到单一元素列表a 之中 将已经处理完的元素统统放到列表done 之中 循环2-3 直至numberL中的元素被全部处理完为止 代码如下: file_path = "D:/PN_TXT/PN_test.txt." # 设置路径 with open(file_path) as file_PN: # 打开文件 lines = file_PN.readlines() #读取文件 PN = '' for line in lines: PN +=line.strip() # 将文件置入一行之中 print(PN) done = [] number = () numberL = list(number) numberL.append(PN) while len(numberL) > 0: a= numberL.pop() done.append(a) print(a) print(done) 预计实现的效果类似这样: ![图片说明](https://img-ask.csdn.net/upload/201904/11/1554949787_823586.png) 而最终实现的效果却是这样: ![图片说明](https://img-ask.csdn.net/upload/201904/11/1554949806_860318.png)
MATLAB中的while循环关于参数与结果的问题
我想比较一个参数在不同循环中的值是不是相等,该怎么设置? 还有就是想能够读取随便哪一次的循环结果,又该怎么弄?_? 属于完全小白,求简单易懂的回答~
while循环查询和更新数据的速度问题
每次循环会select出几千--几万不等的数据,然后对其处理后再更新回去。 经过计算,每分钟才处理3000条数据左右,太慢了,请大家帮着查看。 where条件很简单,应该不存在索引问题。 是不是和数据库链接的建立有关系? 请大家多多指教。 代码大概如下: Statement stmt_Select = con.createStatement(); Statement stmt_Update = con.createStatement(); while (***) { String sql = "select a, b, c from tablename where ......."; stmt_Select.close(); stmt_Select=con.createStatement(); stmt_Update.close(); stmt_Update=con.createStatement(); rs = stmt_Select.executeQuery(sql); int i = 0; while (rs.next()){ // 这里会对select出来的值进行两次md5加密等 i = i + stmt_Update.executeUpdate("update tablename set a=......); } rs.close(); }
Java连MySql数据库存储过程内使用while循环递归至分类根节点的问题~~
<pre name="code" class="sql">label_proc: begin declare v_category_inner_code int; declare v_rootid int default null; declare v_tempid int default null; declare v_listid varchar(1000) default 'aaa'; set v_category_inner_code = p_category_inner_code; while (v_category_inner_code is not null) do begin if exists (select * from pu_productcategory where category_inner_code = v_category_inner_code) then select category_inner_code,up_inner_code into v_tempid,v_category_inner_code from pu_productcategory where category_inner_code = v_category_inner_code; else select v_category_inner_code; set v_category_inner_code = null; end if; end; end while; select * from pu_productcategory where category_inner_code = v_category_inner_code; end label_proc</pre> <pre name="code" class="sql">如上代码:mySQL存储过程 需传入一个参数p_category_inner_code int,数据表结构主要就一个category_inner_code分类编号 和上up_inner_code上级分类编号,我想根据p_category_inner_code 传入的参数递归查询</pre> <pre name="code" class="sql">出该分类的最根级分类,就一个while简单的循环不错那里了,就是没结果出来,好象变成死循环了,我感觉我做的没错啊,希望高手来解决,本人mysql新手。</pre> <p> </p> <p><strong> 呵呵,自己解决了,错在这步:select category_inner_code,up_inner_code into v_tempid,v_category_inner_code  from pu_productcategory where category_inner_code = v_category_inner_code;原本是想根据v_category_inner_code来取记录并把up_inner_code 给v_category_inner_code赋值一步完成,下次递归循环查询的就是ID为这条记录的上级分类,但是MYSQL这里却不能很好的处理这个v_category_inner_code作为条件又给它赋值的操作,语法是没错误的,但是结果就是不出来,运行时还提示的结果超过多行错误!<br /></strong></p>
一个简单的C++程序,改变while循环的进入条件顺序后运行出错。
void func(forward_list<string> &lst, string s1, string s2) { auto current = lst.begin(); auto prev = lst.begin(); cout << *prev << endl; while (*current != s1 && current != lst.end()) { prev = current++; cout << *prev << endl; } if (current != lst.end()) lst.insert_after(current, s2); else lst._Insert_after(prev, s2); } 上面这个程序的第二种情况不能正常运行,会出现foward_list iterator not incompa-tible的提示。但如果我像下面这样将while的条件顺序交换一下,则程序第二种情况能正确运行。我问了我的C语言老师,但他没能给出答案。 while (current != lst.end() && *current != s1)
这是一个转化大小写字母的简单程序,但它的循环似乎有点问题,不是预期的样子,问题在哪呢?菜鸟求解
#include "stdio.h" void main() { int i=0; char ch; while(i<=1) {printf("请输入一个字母") scanf("%c",&ch); if(ch>=65&&ch<=90) ch=ch+32; else if(ch>='a'&&ch<='z') ch=ch-32; else ch=ch; printf("%c",ch); i=i-1; } printf("over"); }
一个简单的循环问题,大家帮忙下
学校捐款,超过十万就停止捐款,帮忙看看我的程序哪里出问题了,得不到想要的结果 #include<stdio.h> int main() { int donation=0,amount=0; while(amount<10) //捐款超过十万就不再接受捐献 { scanf("%d\n",&donation); amount=amount+donation; } return 0; }
在猜数游戏中 while 循环里 guess=int(input(""))和 if int(guess) 使用有什么区别呢
1.Python中我按照python 2的教材在python 3 上写了一个猜数小游戏 但是运行之后 我写的代码在我猜对了数之后不会跳出循环, 而是又一次的开始了循环,直到次数用完。后来找大神改了一下代码可以成功运行了,但是对于其中 guess=int(input(""))和 if int(guess)有了疑问。 我用的就是Python自带的 IDLE 2.教材上的代码: ``` import random secret = random.randint(1, 99) guess = 0 tries = 0 print ("AHOY! I'm the Dread Pirate Roberts,and I have a secret!") print ("It is a number from 1 to 99,I'll give you 8 tries. ") while guess != secret and tries < 8: guess = input("what's yer guess? ") if guess < secret: print ("太小") elif guess > secret: print ("太大!") tries = tries + 1 if guess == secret: print ("答对了") else: print ("没有机会了!") print ("正确答案",secret) ``` 如果我按照教材上的代码运行会报错: ![图片说明](https://img-ask.csdn.net/upload/201903/20/1553050969_242814.png) 大概意思就是不同的类型不能比较大小。所以我就在我的代码上改进了一下。 (2)我自己的代码: 因为教材上是在py 2上写的 我是在Py 3写的 所以有一点改动就是在guess前面加上了int ``` import random secret = random.randint(1, 99) guess = 0 tries = 0 print ("AHOY! I'm the Dread Pirate Roberts,and I have a secret!") print ("It is a number from 1 to 99,I'll give you 8 tries. ") while guess != secret and tries < 8: guess = input("what's yer guess? ") if int(guess) < secret: print ("太小") elif int(guess) > secret: print ("太大!") tries = tries + 1 if int(guess) == secret: print ("答对了") else: print ("没有机会了!") print ("正确答案",secret) ``` 但是我自己写的是可以运行了但是不会跳出while循环 我就很奇怪了,下面是我的运行结果报错: ![图片说明](https://img-ask.csdn.net/upload/201903/20/1553051240_145796.png) 就是说我在第五次已经猜对了,但是并没有跳出循环而是继续让我猜了。(不能使用break,就是用单纯的while循环) (3)大神改进后的代码:大神只是在教材上的代码稍加改动,结果就可以正确运行了,大神在源代码的 ``` guess = input("what's yer guess? ") ``` 改成了 ``` guess = int(input("what's yer guess? ")) ``` 是在input钱加了int 详细如下: ``` import random secret = random.randint(1, 100) guess = 0 tries = 0 print ("AHOY! I'm the Dread Pirate Roberts,and I have a secret!") print ("It is a number from 1 to 99,I'll give you 8 tries. ") while guess != secret and tries < 8: guess = int(input("what's yer guess? ")) if guess < secret: print ("太小") elif guess > secret: print ("太大!") tries = tries + 1 if guess == secret: print ("答对了") else: print ("没有机会了!") print ("正确答案",secret) ``` 这样就可以完美输出了结果如下: ![图片说明](https://img-ask.csdn.net/upload/201903/20/1553051996_729559.jpg)在第七次猜对之后直接跳出循环并结束了;大神给我简单解释说:在input上加, guess就是一个数值类型了,并且在当前循环中都是的; 你在 if int(guess)中这样使用 只是把输入的字符串变成了int 并没有赋值 ,此时guess还是字符串类型,你这种 guess = int(guess) 把转换成int的重新赋值在一个变量上才行.如果我输入40 本应该和随机的相等的,但是此时的40不是int 类型啊,字符串和int做比较,那怎么会相等呢."if ‘40’== 40,是这种形式了". 但是我不理解的是既然我的方法并没有让guess变成int型那代码是怎么运行并且还判断了大小了呢。 为此我有和我学Java的同学聊了一下 但是Java和Python语法上会有相差没有搞懂: ![图片说明](https://img-ask.csdn.net/upload/201903/20/1553052859_519457.png) 现在就想请教一下大神 我这个是一个什么情况 ,第一次提问还是恳请大神讲解一下 本人是自学小白 只是大学学了一点编程 **再补充一下**: 就是我自己改的代码哪里一直没有跳出循环我一开始以为是缩进问题,但是我试过了并不是 而且我试着在print("答对了")下一行加上 break 结果我的代码就也能比较大小也能完美运行了,所以就对大神给我的解释更蒙了 # 我这个其实总共出现了两个问题吧一个是我的那种方法为什么不会跳出循环呢 第二个就是按照大神那样的改的话while 循环里 guess=int(input(""))和 if int(guess) 使用有什么区别呢
这个猜数游戏中怎么将for循环的语句换成while循环语句
``` ```import java.util.Random; import java.util.Scanner; public class Chenwei_Guessnumebr{ static int w = 8; /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub Random ran = new Random(); int num = ran.nextInt(100)+1; for(;;){ System.out.println("1.开始猜数"); System.out.println("2.游戏参数设置"); System.out.println("9.退出"); Scanner sc=new Scanner(System.in); String choo =sc.next(); if (!choo.equals("1")&&!choo.equals("2")&&!choo.equals("9")){ //if条件语句 三种条件,限制情况. System.out.println("非法数据"); } else { if (choo.equals("1")) { int t = 1; for (t=1;t<w;t=t+1) { System.out.println("请输入你想猜测的数字"); Scanner scs=new Scanner(System.in); int n = scs.nextInt(); if (n>num) { System.out.println("猜的数字大了."); } else if (n<num) { System.out.println("猜的数字小了."); } else{ System.out.println("恭喜你猜对了,你的战斗力是x%" ); // ☆“缺一个计算战斗力的式子” break; } } if(t > w) //t(猜测次数)超过了w(设置的总次数) { System.out.println("超过次数,尚需努力"); break; } else { break; } } } if(choo.equals("2")){ System.out.println("请选择难度:"); System.out.println("1.简单"); System.out.println("2.一般"); System.out.println("3.困难"); Scanner scs = new Scanner(System.in); int u = scs.nextInt(); if (u==1) { w=8; //次数为8(简单) } else if (u==2) { w=6; //次数为6(一般) } else { w=4; //次数为4(困难) } } else { break; } } } } ``` ``` 同时缺少一个计算战斗力的式子 就是在答对的时候 “恭喜你猜对了,你的战斗力是x%"(x=1-n/8,n是猜中时的次数-1)
c循环语句简单的问题。。。
int a=10; do{a--;}while(a--); 为什么是无限循环?小括里到0不停么
谁可以帮我解释下这个循环的嵌套么?最好来几个简单例题
如图所示的这几个版型嵌套,看是看懂了些,就差例题该怎么循环该怎么个顺序,不懂不懂不懂。![图片](https://img-ask.csdn.net/upload/201601/14/1452750974_540914.jpg)
请教一个JAVA线程的奇怪问题
在学习JAVA线程时候的遇到一个很奇怪的现象。让我们先来看代码 ```java public class TestThread { public static void main(String[] args) { IRun ir = new IRun(); Thread it = new Thread(ir); it.start(); try { Thread.sleep(1000); } catch (InterruptedException ex) { Logger.getLogger(TestThread.class.getName()).log(Level.SEVERE, null, ex); } ir.setStop(); } static class IRun implements Runnable { boolean exec = true; public void setStop() { exec = false; System.out.println("exec = " + exec); } @Override public void run() { int c = 0; while (exec) { c++; } System.out.println("退出了循环"); } } } ``` 在上述程序首先创建一个Runnable对象ir,然后创建一个线程对象it,通过it.start()启动线程,执行IRun类中的run()函数,执行一个while循环。while循环的条件由布尔变量exec控制。主程序中等待1秒钟后,修改exec的值为false,按照正常的逻辑应该是在exec值为false后,循环结束执行下面输出语句,然后线程结束,程序退出。 但是,上述代码在运行后,将不会执行run()函数中的System.out.println("退出了循环");语句,程序一直保持运行。对这种现象,在帖子”关于JAVA线程,请大神帮忙“中still_rain给出的这种现象的原因是线程访问的同步问题导致,当主线程(main函数所在的线程)中修改变量exec的值后,在创建执行的线程中访问的exec的值没有发生变化(或者说可能是主线程、执行线程这两个线程exec变量是不同的对象,好像是说java会将一些资源在每个线程中复制一份?有待确认)。在exec变量前加上volatile修饰符后,程序运行正常,问题似乎解决。 现在以上述代码为基础,进行一次小小的修改。在run()函数中的while循环中加上一个类对象操作,比如新建一个字符串,则run()函数为 ```java public void run() { int c = 0; while (exec) { String s = new String(""); c++; } System.out.println("退出了循环"); } } ``` 运行程序,程序按预期的顺序执行,顺利结束。这时候不管exec变量是否有volatile修饰符,且只在while循环中存在类对象操作(新建对象、对象函数调用(调用的函数不能返回基本数据类型),以及像System.out.println这样的操作),程序的运行都很正常,对这种现象就不是上述的同步问题能够解释的了。在帖子”关于JAVA线程,请大神帮忙“中still_rain(感谢热情的回复)从编译器优化的角度进行了解释。当while循环中只有简单的基本数据类型参与运算的时候由于执行速度太快,将while循环编译成了while(true)语句。导致循环不会退出,从而循环后的输出不会执行,且程序不会退出。 为了探究这个奇怪现象的原因,让我们看看编译后的字节码,下图是用jclasslib查看的字节码,是修改前的run()函数字节码。 ![](http://img.blog.csdn.net/20150210165255055?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZmVuZ2Rhdmlk/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center) 从图中可以看到,循环体从aload_0开始,到goto 2结束。控制跳转的语句是ifeq 15,意思是如果值为0则跳转到15,否则执行下面的语句。 当将上面的while(exec)语句修改为while(true)后,字节码为: ![](http://img.blog.csdn.net/20150210165209410?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZmVuZ2Rhdmlk/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center) 由两图可以看出,编译器并没有将while(exec)语句优化为while(true)。再看修改后的代码编译的字节码: ![](http://img.blog.csdn.net/20150210165320125?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZmVuZ2Rhdmlk/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center) 循环体从aload_0起,到goto 2结束。从ifeq 25下面的一行到astotre_2行,为String s = new String("");语句的字节码,将这段去掉则字节码与修改前的一样。所以基本可以排除编译器优化导致的程序不正常运行。 请看到这篇文章的大神们能够给予指导,探究出现这种情况的原因,谢谢
PHP 写循环显示502错误
最近在跟着 php和mysql web开发 这本书学习,在运行以下php语句的循环时出现502错误。 想循环输出一个表格: ``` <!DOCTYPE html> <html> <head> <title>Bob's Auto Parts - Freight Costs</title> </head> <body> <table style="border: 0px; padding: 3px"> <tr> <td style="background: #cccccc; text-align: center;">Distance</td> <td style="background: #cccccc; text-align: center;">Cost</td> </tr> <?php $distance = 50; while ($distance <= 250) { echo "<tr> <td style=\"text-align: right;\">".$distance."</td> <td style=\"text-align: right;\">".($distance / 10)."</td> </tr>\n"; $distance += 50; } ?> </table> </body> </html> ``` 但是光这种简单的循环还是能成功显示(输出1~5): ``` <?php $num = 1; while ($num <= 5){ `echo $num."<br />"; $num ++; } ?> ``` 望大佬解决,谢谢
递归调用循环的非递归形式
背景:之前在算法书上看到说所有的递归算法都可以写成非递归的形式。 那么遍历一个完全树的所有叶子节点,我看过两个算法,一个是递归调用,非常简单。 还有一个使用了队列:(c++ 和伪代码的混合表示) queue.push(root);//根节点进队 while (!queue.isEmpty()) { queue.push(root->left); queue.push(root->right); if (!queue.top()->hasChild()) { print queue.top()->data; } queue.pop(); } 上面的算是非递归形式。 不过我想问的是,是不是说一定需要队列或者堆栈这样的辅助数据结构才能解决该问题? 因为我觉得之前的一些递归算法改成的非递归算法都没有用到什么数据结构。 比如合并排序的非递归形式。用到的仅仅是两个向量而已。 我一直认为递归算法改成非递归形式是有一定的模板可循的。如果辅助数据结构不可避免,是不是意味着所有的递归算法只是理论上可以写成递归形式,至于写不写的出来,还要看个人的数据结构水平?
一个简单的坦克打点的小游戏,但是在没有进行的时候也会一直进行循环,如何停顿循环呢?
就是想要让这个循环在不进行操作时停顿,不会一直重复打印。 ``` #include <stdio.h> #include <stdlib.h> #include <conio.h> #include <time.h> int main() { int i=0,j=0; int x = 5; int y =10; char input; int isfire; int score=0; int ny ; int left = 0,right = 20; srand(time(NULL)); ny=rand()%(left - right)+right; //取随机数 int iskilled = 0; while (1) { system("cls"); //清屏 if(!iskilled) //判断点是否被击中 { for(j=0;j<ny;j++) { printf(" "); } printf("+\n"); } if(isfire==0) //是否开火 { for(i=0;i<x+1;i++) printf("\n"); } else { for(i=0;i<x;i++) { for(j=0;j<y;j++) printf(" "); printf(" |\n"); } if(y+2==ny) //判断点和子弹是否在同一列 { ny=rand()%(left - right)+right; score++; } isfire=0; } //输出坦克形状 for(j=0;j<y;j++) { printf(" "); } printf(" *\n"); for(j = 0; j<y;j++) { printf(" "); } printf("*****\n"); for(j=0;j<y;j++) { printf(" "); } printf("* *"); printf("\n"); //记分器 printf("\n score:%d \n",score); //移动坦克和发射子弹的操作 if(kbhit()) { input = getch(); if(input == 'a') y--; if(input == 'd') y++; if(input == 'w') x--; if(input == 's') x++; if(input == ' ') isfire = 1; } } return 0; } ``` 谢谢各位前辈。
C#中的tcpclient中断问题
我编辑了代码用于和高清摄像机通讯,摄像机作为服务器端,分别有两个端口,一个端口用于控制命令的交互,一个命令用于获取摄像机图像,所使用的通讯代码是一样的。 但图像通讯是连续不间断的,每收到一张图片,要回复一个继续的命令,这个一直工作正常。但控制命令的交互就总是出问题,只能第一次发送是正确的,后面发送就无响应了,相机也不会有任何响应发生。 看网上有介绍说是异步通讯的问题,在while循环里的会一直工作,没有while循环的会出现中断情况,可我不知道如何实现,网上的代码都是简单的发送,关闭,我也尝试了发送前建立,发送结束关闭,但还是同样的问题。 请各位大侠给予指导,谢谢! public bool networkbuild()//建立端口连接 { if (client == null) { try { client = new TcpClient(networkip, networkport); netstream = client.GetStream(); return true; } catch (Exception ex) { MessageBox.Show(ex.Message); } return false; } return true; } public void networkclose()//关闭端口连接 { if (client != null) { try { netstream.Close(); client.Close(); } catch (Exception ex) { MessageBox.Show(ex.Message); } } } public bool netsendmessage(byte[] message,int length)//发送数据 { if (netconnected) { try { netstream.Write(message, 0, length); return true; } catch (Exception ex) { MessageBox.Show(ex.Message); } return false; } MessageBox.Show("连接已关闭"); return false; } public bool netreadmessage(byte[] message, int length)//读取数据 { try { int i = 0; int cont = 0; if (netstream != null) { while (i<length) { cont = netstream.Read(message, i, length - i); if (cont > 0) { i += cont; } } } else { return false; } return true; } catch (Exception ex) { MessageBox.Show(ex.Message); } return false; }
一个Shell的简单问题:将ls的内容作为参数传入
就是一个目录下有多个文件夹。 我使用下面的命令: ls | grep test 然后出现下面的几个文件夹: test test1 test2 test3 现在我想把这几个文件夹作为类似于xargs的东西传到我的for循环里来 就类似for t in tests 有没有啥比较优雅的方法把这些文件夹放入到tests中。 像ls | grep test > tmp | while line in tmp; do 这样的,就不是优雅的方法了吧?
爬虫福利二 之 妹子图网MM批量下载
爬虫福利一:27报网MM批量下载 点击 看了本文,相信大家对爬虫一定会产生强烈的兴趣,激励自己去学习爬虫,在这里提前祝:大家学有所成! 目标网站:妹子图网 环境:Python3.x 相关第三方模块:requests、beautifulsoup4 Re:各位在测试时只需要将代码里的变量path 指定为你当前系统要保存的路径,使用 python xxx.py 或IDE运行即可。 ...
Java学习的正确打开方式
在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈。博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你。 何谓学习?博主所理解的学习,它是一个过程,是一个不断累积、不断沉淀、不断总结、善于传达自己的个人见解以及乐于分享的过程。
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...
linux系列之常用运维命令整理笔录
本博客记录工作中需要的linux运维命令,大学时候开始接触linux,会一些基本操作,可是都没有整理起来,加上是做开发,不做运维,有些命令忘记了,所以现在整理成博客,当然vi,文件操作等就不介绍了,慢慢积累一些其它拓展的命令,博客不定时更新 free -m 其中:m表示兆,也可以用g,注意都要小写 Men:表示物理内存统计 total:表示物理内存总数(total=used+free) use...
比特币原理详解
一、什么是比特币 比特币是一种电子货币,是一种基于密码学的货币,在2008年11月1日由中本聪发表比特币白皮书,文中提出了一种去中心化的电子记账系统,我们平时的电子现金是银行来记账,因为银行的背后是国家信用。去中心化电子记账系统是参与者共同记账。比特币可以防止主权危机、信用风险。其好处不多做赘述,这一层面介绍的文章很多,本文主要从更深层的技术原理角度进行介绍。 二、问题引入 假设现有4个人...
程序员接私活怎样防止做完了不给钱?
首先跟大家说明一点,我们做 IT 类的外包开发,是非标品开发,所以很有可能在开发过程中会有这样那样的需求修改,而这种需求修改很容易造成扯皮,进而影响到费用支付,甚至出现做完了项目收不到钱的情况。 那么,怎么保证自己的薪酬安全呢? 我们在开工前,一定要做好一些证据方面的准备(也就是“讨薪”的理论依据),这其中最重要的就是需求文档和验收标准。一定要让需求方提供这两个文档资料作为开发的基础。之后开发...
网页实现一个简单的音乐播放器(大佬别看。(⊙﹏⊙))
今天闲着无事,就想写点东西。然后听了下歌,就打算写个播放器。 于是乎用h5 audio的加上js简单的播放器完工了。 演示地点演示 html代码如下` music 这个年纪 七月的风 音乐 ` 然后就是css`*{ margin: 0; padding: 0; text-decoration: none; list-...
Python十大装B语法
Python 是一种代表简单思想的语言,其语法相对简单,很容易上手。不过,如果就此小视 Python 语法的精妙和深邃,那就大错特错了。本文精心筛选了最能展现 Python 语法之精妙的十个知识点,并附上详细的实例代码。如能在实战中融会贯通、灵活使用,必将使代码更为精炼、高效,同时也会极大提升代码B格,使之看上去更老练,读起来更优雅。
数据库优化 - SQL优化
以实际SQL入手,带你一步一步走上SQL优化之路!
2019年11月中国大陆编程语言排行榜
2019年11月2日,我统计了某招聘网站,获得有效程序员招聘数据9万条。针对招聘信息,提取编程语言关键字,并统计如下: 编程语言比例 rank pl_ percentage 1 java 33.62% 2 cpp 16.42% 3 c_sharp 12.82% 4 javascript 12.31% 5 python 7.93% 6 go 7.25% 7 p...
通俗易懂地给女朋友讲:线程池的内部原理
餐盘在灯光的照耀下格外晶莹洁白,女朋友拿起红酒杯轻轻地抿了一小口,对我说:“经常听你说线程池,到底线程池到底是个什么原理?”
经典算法(5)杨辉三角
杨辉三角 是经典算法,这篇博客对它的算法思想进行了讲解,并有完整的代码实现。
腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹?
昨天,有网友私信我,说去阿里面试,彻底的被打击到了。问了为什么网上大量使用ThreadLocal的源码都会加上private static?他被难住了,因为他从来都没有考虑过这个问题。无独有偶,今天笔者又发现有网友吐槽了一道腾讯的面试题,我们一起来看看。 腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹? 在互联网职场论坛,一名程序员发帖求助到。二面腾讯,其中一个算法题:64匹...
面试官:你连RESTful都不知道我怎么敢要你?
干货,2019 RESTful最贱实践
JDK12 Collectors.teeing 你真的需要了解一下
前言 在 Java 12 里面有个非常好用但在官方 JEP 没有公布的功能,因为它只是 Collector 中的一个小改动,它的作用是 merge 两个 collector 的结果,这句话显得很抽象,老规矩,我们先来看个图(这真是一个不和谐的图????): 管道改造经常会用这个小东西,通常我们叫它「三通」,它的主要作用就是将 downstream1 和 downstre...
为啥国人偏爱Mybatis,而老外喜欢Hibernate/JPA呢?
关于SQL和ORM的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行了一番讨论,感触还是有一些,于是就有了今天这篇文。 声明:本文不会下关于Mybatis和JPA两个持久层框架哪个更好这样的结论。只是摆事实,讲道理,所以,请各位看官勿喷。 一、事件起因 关于Mybatis和JPA孰优孰劣的问题,争论已经很多年了。一直也没有结论,毕竟每个人的喜好和习惯是大不相同的。我也看...
SQL-小白最佳入门sql查询一
不要偷偷的查询我的个人资料,即使你再喜欢我,也不要这样,真的不好;
项目中的if else太多了,该怎么重构?
介绍 最近跟着公司的大佬开发了一款IM系统,类似QQ和微信哈,就是聊天软件。我们有一部分业务逻辑是这样的 if (msgType = "文本") { // dosomething } else if(msgType = "图片") { // doshomething } else if(msgType = "视频") { // doshomething } else { // doshom...
【图解经典算法题】如何用一行代码解决约瑟夫环问题
约瑟夫环问题算是很经典的题了,估计大家都听说过,然后我就在一次笔试中遇到了,下面我就用 3 种方法来详细讲解一下这道题,最后一种方法学了之后保证让你可以让你装逼。 问题描述:编号为 1-N 的 N 个士兵围坐在一起形成一个圆圈,从编号为 1 的士兵开始依次报数(1,2,3…这样依次报),数到 m 的 士兵会被杀死出列,之后的士兵再从 1 开始报数。直到最后剩下一士兵,求这个士兵的编号。 1、方...
致 Python 初学者
欢迎来到“Python进阶”专栏!来到这里的每一位同学,应该大致上学习了很多 Python 的基础知识,正在努力成长的过程中。在此期间,一定遇到了很多的困惑,对未来的学习方向感到迷茫。我非常理解你们所面临的处境。我从2007年开始接触 python 这门编程语言,从2009年开始单一使用 python 应对所有的开发工作,直至今天。回顾自己的学习过程,也曾经遇到过无数的困难,也曾经迷茫过、困惑过。开办这个专栏,正是为了帮助像我当年一样困惑的 Python 初学者走出困境、快速成长。希望我的经验能真正帮到你
“狗屁不通文章生成器”登顶GitHub热榜,分分钟写出万字形式主义大作
一、垃圾文字生成器介绍 最近在浏览GitHub的时候,发现了这样一个骨骼清奇的雷人项目,而且热度还特别高。 项目中文名:狗屁不通文章生成器 项目英文名:BullshitGenerator 根据作者的介绍,他是偶尔需要一些中文文字用于GUI开发时测试文本渲染,因此开发了这个废话生成器。但由于生成的废话实在是太过富于哲理,所以最近已经被小伙伴们给玩坏了。 他的文风可能是这样的: 你发现,...
程序员:我终于知道post和get的区别
是一个老生常谈的话题,然而随着不断的学习,对于以前的认识有很多误区,所以还是需要不断地总结的,学而时习之,不亦说乎
GitHub标星近1万:只需5秒音源,这个网络就能实时“克隆”你的声音
作者 | Google团队 译者 | 凯隐 编辑 | Jane 出品 | AI科技大本营(ID:rgznai100) 本文中,Google 团队提出了一种文本语音合成(text to speech)神经系统,能通过少量样本学习到多个不同说话者(speaker)的语音特征,并合成他们的讲话音频。此外,对于训练时网络没有接触过的说话者,也能在不重新训练的情况下,仅通过未知...
《程序人生》系列-这个程序员只用了20行代码就拿了冠军
你知道的越多,你不知道的越多 点赞再看,养成习惯GitHub上已经开源https://github.com/JavaFamily,有一线大厂面试点脑图,欢迎Star和完善 前言 这一期不算《吊打面试官》系列的,所有没前言我直接开始。 絮叨 本来应该是没有这期的,看过我上期的小伙伴应该是知道的嘛,双十一比较忙嘛,要值班又要去帮忙拍摄年会的视频素材,还得搞个程序员一天的Vlog,还要写BU...
加快推动区块链技术和产业创新发展,2019可信区块链峰会在京召开
11月8日,由中国信息通信研究院、中国通信标准化协会、中国互联网协会、可信区块链推进计划联合主办,科技行者协办的2019可信区块链峰会将在北京悠唐皇冠假日酒店开幕。   区块链技术被认为是继蒸汽机、电力、互联网之后,下一代颠覆性的核心技术。如果说蒸汽机释放了人类的生产力,电力解决了人类基本的生活需求,互联网彻底改变了信息传递的方式,区块链作为构造信任的技术有重要的价值。   1...
程序员把地府后台管理系统做出来了,还有3.0版本!12月7号最新消息:已在开发中有github地址
第一幕:缘起 听说阎王爷要做个生死簿后台管理系统,我们派去了一个程序员…… 996程序员做的梦: 第一场:团队招募 为了应对地府管理危机,阎王打算找“人”开发一套地府后台管理系统,于是就在地府总经办群中发了项目需求。 话说还是中国电信的信号好,地府都是满格,哈哈!!! 经常会有外行朋友问:看某网站做的不错,功能也简单,你帮忙做一下? 而这次,面对这样的需求,这个程序员...
网易云6亿用户音乐推荐算法
网易云音乐是音乐爱好者的集聚地,云音乐推荐系统致力于通过 AI 算法的落地,实现用户千人千面的个性化推荐,为用户带来不一样的听歌体验。 本次分享重点介绍 AI 算法在音乐推荐中的应用实践,以及在算法落地过程中遇到的挑战和解决方案。 将从如下两个部分展开: AI算法在音乐推荐中的应用 音乐场景下的 AI 思考 从 2013 年 4 月正式上线至今,网易云音乐平台持续提供着:乐屏社区、UGC...
【技巧总结】位运算装逼指南
位算法的效率有多快我就不说,不信你可以去用 10 亿个数据模拟一下,今天给大家讲一讲位运算的一些经典例子。不过,最重要的不是看懂了这些例子就好,而是要在以后多去运用位运算这些技巧,当然,采用位运算,也是可以装逼的,不信,你往下看。我会从最简单的讲起,一道比一道难度递增,不过居然是讲技巧,那么也不会太难,相信你分分钟看懂。 判断奇偶数 判断一个数是基于还是偶数,相信很多人都做过,一般的做法的代码如下...
【管理系统课程设计】美少女手把手教你后台管理
【文章后台管理系统】URL设计与建模分析+项目源码+运行界面 栏目管理、文章列表、用户管理、角色管理、权限管理模块(文章最后附有源码) 1. 这是一个什么系统? 1.1 学习后台管理系统的原因 随着时代的变迁,现如今各大云服务平台横空出世,市面上有许多如学生信息系统、图书阅读系统、停车场管理系统等的管理系统,而本人家里就有人在用烟草销售系统,直接在网上完成挑选、购买与提交收货点,方便又快捷。 试想,若没有烟草销售系统,本人家人想要购买烟草,还要独自前往药...
4G EPS 第四代移动通信系统
目录 文章目录目录4G 与 LTE/EPCLTE/EPC 的架构E-UTRANE-UTRAN 协议栈eNodeBEPCMMES-GWP-GWHSSLTE/EPC 协议栈概览 4G 与 LTE/EPC 4G,即第四代移动通信系统,提供了 3G 不能满足的无线网络宽带化,主要提供数据(上网)业务。而 LTE(Long Term Evolution,长期演进技术)是电信领域用于手机及数据终端的高速无线通...
相关热词 c# clr dll c# 如何orm c# 固定大小的字符数组 c#框架设计 c# 删除数据库 c# 中文文字 图片转 c# 成员属性 接口 c#如何将程序封装 16进制负数转换 c# c#练手项目
立即提问