由于微软正在放弃XNA(是的,我知道人们仍然可以非常成功地使用它,但事实上它只是在很短的一段时间后才开发出来的事实说明了这一点).什么是最简单的2D开发的C#图形库(类似于Allegro,SFML,SDL等)?在最好的情况下,我的意思是那些正在积极发展的人,有一个活跃的社区,并希望有一些体面的教程.
我试着寻找答案但是,不管怎么说,它总是出现的XNA(可能是有原因的......)
谢谢!
请注意:这不是关于eval()的使用,而是关于它被使用和教授的书的潜在质量(或缺乏).所以在Python中已经有关于eval()的无数线程.
冒着邀请SO的愤怒和挫折的风险,我仍然决定提出这个问题,以防万一.请多多包涵.我已经尝试了Google和SO本身来解决这个具体问题(正如您将看到的那样)并且什么都没有.不过,我可能会失明.
这个问题是关于使用臭名昭着的eval()函数.
John Zelle有一本比较着名的(并且经过深思熟虑,很有可能看到)的书:http://www.amazon.com/Python-Programming-Introduction-Computer-Science/dp/1590282418/ref=pd_sim_b_3
从技术上讲,它是一本CS1书,它使用Python作为编程语言.很公平,这种作者承担了一些责任("嘿,我试图教你一些广泛的东西,而不是所有这些语法和安全细节"),但是当我开始阅读它时,我注意到,字面意思第一个例子,使用
x = eval(input("Enter your number: "))
其中x应该是一个int,因此我们需要将用户输入转换为int.
我正在使用Python 2.7.4,本书是关于Python 3的,所以我从一开始就遇到了很多关于print()和input()以及eval()的问题,并且不得不做一些研究来获得工作的例子.在我的研究过程中,我已经阅读了无数关于Python中的eval()的观点(主要是在SO上),其归结为几乎总是坏的,安全风险,不必要的技术开销等等.用户的问题要复杂得多(有一个关于在执行wxPython项目时使用eval()),所以我不能保证我的案例和案例之间完全相似,但仍然......
因此,我承认,我对这本书并不太了解,但是我已经达到了这样的程度,稍后,作者解释了使用eval()而没有提及它的争议性质.他基本上说了我刚才所说的:我们需要x最终成为一个int,所以这里有一个方便的方法.他似乎从未使用过它.
我的问题是:如果,从一开始,作者犯了这样的错误(或者这不是一个错误?我可能会在这里遗漏一些东西),这本书值得学习吗?我相信Zelle先生是CS的优秀老师,它表明,但无论他是否愿意,除了算法和编程艺术之外,人们仍然会从他的书中学习Python.因此,从Python社区中这样一个看似普遍的问题保持沉默的书中学习Python是否值得?我不希望Zelle先生成为一名Python黑客并发现它的所有秘密,但是像这样的细节可能会成为一个自我教学/自我学习的人.您对此学习材料的建议是什么?
PS另一方面,让我从一开始就进行相当多的研究和实验(不知不觉)非常酷:-)
谢谢!
对不起,如果这是一个愚蠢的菜鸟问题.我正在为我的女朋友做一个非常小的项目 - 一个国家名单,她必须进入他们的首都(晦涩的国家,请注意).由于我是一个初学者,我不得不求助于使用两个数组,一个用于国家,另一个用于大写,具有匹配的索引.这样很容易检查正确的答案,我不必解析任何文本文件或使用任何数据库.我使用随机数字来使它更有趣.为了阻止程序一遍又一遍地生成相同的国家,我使用了一个整数列表来跟踪已经使用了哪些索引,如果列表包含前一个索引,则重新生成该数字.很基本的东西.令人惊讶的是,这一切都有效.
但我遇到了问题.我如何检查我的国家已经用完了?:)我不能简单地检查我的国家/地区数组的列表大小,因为List可能包含比数组更多的值,并且if(taken.Equals(Countries.Length))似乎不起作用.或者我在代码中找不到合适的位置来进行此检查.
对不起,如果这很简单,但我似乎找不到合适的解决方案.
编辑 哇,多么令人惊叹的社区.在从星巴克到我的地方的短暂步行中,我得到了许多质量答案,涵盖了大量的设计技巧.这真是太棒了!谢谢大家!显然,问题已得到解答,但如果有人有任何其他意见,我会为您发布代码.
//现在只需13个国家的测试
string[] Countries = {"Belgium", "France", "The Netherlands", "Spain", "Monaco", "Belarus", "Germany",
"Portugal", "Ukraine", "Russia", "Sweden", "Denmark", "South Africa"};
string[] Capitals = {"Brussels", "Paris", "Amsterdam", "Madrid", "Monaco", "Minsk", "Berlin",
"Lisbon", "Kiev", "Moscow", "Stockholm", "Copenhagen", "Pretoria"};
Random number = new Random();
List<int> taken = new List<int>();
int index;
int score = 0;
private int Generate()
{
while (true) {
index = number.Next(0, Countries.Length);
if (taken.Contains(index)) continue;
// THIS IS WHAT I WAS INITIALLY TRYING …
Run Code Online (Sandbox Code Playgroud) 希望有人可能会指出我正确的方向.
所以在计算机上运行一个非常简单和旧的Delphi程序,我无法访问源或它的数据库.我只能运行.exe
我想以某种方式从这个程序中的TEdit控件读取几个字符串并将它们转储到同一台计算机上的简单.txt文件中.它还会在每次出现新内容时打印数据,因此可能有一种方法可以在发送到打印机时捕获它.这是我的想法结束的地方.
我该怎么做呢?某种听众效用?Win32 API?操作系统是Win7.
PS这不是黑客攻击:)所以不需要隐藏任何东西.可以在视线范围内.
编辑:好的,既然每个人都开始专注于错误的事情,我会尽力解释我需要的东西.
首先,编程是"唯一的"我的一个开关业余爱好.我仍然认为自己是一个初学者.但是之前我只是拿了一本大书,比如C语言并阅读它,没有完成任何事情,并且让生活受到阻碍,现在我已经决定了一个更好的方法就是拥有一个牢记具体项目,并以此为重点.这样我就会有一个特定的目标,并会尝试只学习实现它所需要的东西和技术.它还将帮助我克服混淆哪种语言/技术的挑剔.
这就是我的问题所在.我的实际工作与编程或IT无关.我们在使用的软件中也没有任何访问权限或任何发言权.其中一个程序 - 我正在谈论的程序 - 是一个简单的寄存器:客户端来了,我们的员工在寄存器中添加了一个条目,程序打印出来(因此我认为我可以在发送到打印机时捕获信息)两个带有号码的收据.一个去客户,另一个和我们在一起.我们有一个非常原始的系统,允许客户使用他的收据号码查询他的订单状态(基本上是"完成"或"未完成").信息存储在我们网站上的小型数据库中.我也有机会获得我们的数据库和我们的信息.我没有任何访问注册程序源的资源,也没有访问它的DB.我也不能修改.我只能运行它.因此问题.
我们现在所做的是 - 一名员工随后拿起那张纸,打开我们的网站并手动添加新条目.然后,当时机成熟时,他会改变其状态.我的想法是简化每个人的生活:以某种方式捕获收据号(和其他信息)在Delphi注册程序的条目创建过程中(当客户端仍然存在时,在我们的员工点击"确定"并创建条目之前),转储它是一个.txt文件,后来开发了一些东西来自动将信息批量上传到我们自己的数据库.所以没有人必须手工输入,这是毫无意义和乏味的.问题是,就像我说的那样,我无法访问程序的源代码或数据库.这是一个事实,没有必要建议我们改变这个事实.我们做不到.我可以访问程序运行的物理计算机,当然我可以访问我们的网站和我们的数据库.希望这是有道理的.
同样,我的工作与IT无关,所以这将是一个自由时间的爱好项目,让我回到编程,但有一个特定的目标.这似乎是一个崇高的目标,但我没有其他想法诚实.这就是为什么我说我准备好考虑任何技术和任何语言.Delphi只是因为注册软件是Delphi而被标记.我实际上对Delphi知之甚少,所以如果可以用其他语言(C或.Net或某种类型的脚本......)来完成,我会很感激指针.