猜数字游戏可用一个简单的while循环来实现。
其中 随机数 的生成在第4篇介绍过,
键盘输入在上一篇介绍过
import random
result = round(random.random()*100)
while result != guess:
guess = int(input())
if guess>result:
print('大了!')
elif guess
print('小了!')
else:
print('猜对了!')
小结
较长的篇幅在介绍条件语句和循环语句,合称为控制语句。
顾名思义,控制语句就是控制程序的执行逻辑。控制语句的语法虽然不多,但却是程序的骨架,记住语法不难,真正理解并灵活应用却不简单。
关于练习
有朋友和我说,不是号称初中生就能看懂吗?我怎么看不懂啊?
我问他,是代码执行失败了,找不到原因吗?
他反问我说,代码?什么代码?
好吧,敢情是把这当小说看了!
好吧。
也许把英语单词和语法都背熟就能学好英语。
但不做练习肯定学不好数学。
学编程也是一样!不写代码是不可能学会的!
敲代码的过程中有问题,可以留言或微信。
关于刷题
也有朋友说,文章里的习题太少了,有没有在线测试自己学习成果的地方。
推荐2个:LeetCode 和 洛谷。
洛谷的题目绝大多数来自于 NOIP。
NOIP:全国青少年信息学奥林匹克联赛,可以简单理解为省赛。
初、高生都可以参加,对初升高,高考择校都有很大帮助。
2019年停办了,改成csp认证。
NOP:全国青少年信息学奥林匹克竞赛,可以简单理解为全国赛。
理论上高中生才可能获奖。
全国一等奖的话,基本上名校随便挑。
ACM:国际大学生程序设计竞赛,可以简单理解为全球赛。
总决赛获奖的,互联网公司高薪抢着要。
洛谷的题目难度跨度很大。
用现在学到的内容,就可以进入“试炼场”的“新手村”刷题了。
但后两关“省选斗兽场”、“USACO”难度相当高,比LeetCode的“困难题”更难。
LeetCode面向的主要是找工作面试。
不会有简单的题,也不会有特别难的题。
所以想去LeetCode刷题,至少要到30节课左右。
据说刷完LeetCode的题,去任何公司面试,编程题都是洒洒水。
洛谷刷题补充知识
洛谷的题,一般会给定一个输入,检验你的输出。
这时你会碰到 2 个或 多个数字 输入在一行,中间用空格隔开。
在程序里怎么获得每一个数字呢?
1. input() 函数会把整行当成一个字符串。
2. split(' ') 可以把字符串按空格切割,注意引号中间有空格。
3. 切割完之后, i[0] 就是第一个, i[1] 是第二个,依次类推。
4. 用int()转换为数字
阶段练习
1.阶乘是基斯顿·卡曼(Christian Kramp,1760~1826)于 1808 年发明的运算符号。阶乘用感叹号表示,比如6的阶乘, 6!= 1*2*3*4*5*6=720。求正整数n的阶乘 n!
2.《孙子算经》是重要的古代汉族数学著作。约成书于1500年前,卷下第31题,是后世“鸡兔同笼”题的始祖。“今有雉兔同笼,上有三十五头,下有九十四足,问雉兔各几何?”,。
3.程大位我国明代数学家,珠算发明家。在他的著作《算法统宗》有一道题,“一百馒头一百僧,大僧三个更无争,小僧三人分一个,大小和尚各几丁”,就是说100个和尚100个馒头,大和尚吃3个馒头,3个小和尚吃一个馒头。求大小和尚的人数。
4.假设还是100个和尚100个馒头,壮年和尚吃5个馒头,老年和尚吃3个馒头,2个小和尚吃一个馒头。求壮年和尚、老和尚、小和尚的人数。
5.猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,看见只剩下一个桃子了。求第一天共摘了多少。
6.有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少?
7.如下图,打印出99乘法表。
8.如下图,打印菱形。