前面说了这么多一直都是在说几乎跟数学公式一样的东西。那么现在来说一说跟语文、英语有关系的东西
字符串
应该大部分同学的知道计算机只认识0、1,可是如果要人类用0、1来和计算机交流那是多么痛苦的事。我们更希望计算机返回的是我们看得懂的东西。一个字、一个词又或者是一段话。。。 那么接着前面一篇我们有以下场景
def f(x):
if x < 0:
print('我是卖家,我不卖苹果')
else:
tmp = 2 * x + 1
print(tmp, '斤苹果加一个袋子', tmp, '元')
那么接下你调用这个函数的时候就像是有人在跟你讨价还价一样了。 既然知道了字符串是个什么东西,那么怎么去使用就是一件比较自由的事情了。正常人通常使用字符串都是与人交流,而程序员不同,还需要跟计算机交流。比如告诉计算机生成一个名字叫做easy的文件,并在文件中留下彩蛋,“万事如意”。
with open('easy', 'w') as f:
f.write('万事如意')
循环与数组
我们想一下前面的场景,如果有100个人打算买苹果,你需要逐个计算金额,用程序怎么计算?
def f(x):
if x < 0:
return 0
return x * 2 + 1
f(1)
f(2)
f(2)
#....直到100个结束
如果你是这样写那么恭喜你,你有暴力美学黑客风范。简单粗暴是我们的目标,但是需要实现这个目标我们还有几点需要认识一下
- 复读机的事交给机器来做
- 累计起来,一步到位
import random
# 模拟100个人买苹果的量
all_number = [random.randint(0,5) for i in range(100)]
# 使用循环来从集合中读取出具体的数量
for curr in all_number:
print(curr, '斤苹果加个袋子', f(curr), '元')
是不是少了很多行代码
数组去重,set
在前面使用了数组,我们简化了很多代码,但是在实际过程中我们发现有很多计算是重复的,因为买家中买不止一个买相同的数量。 结合现在大家都用支付宝付款,那么有以下场景
all_number = [random.randint(0, 5) for i in rage(100)]
all_number_set = set(all_number)
for curr in all_number:
print(curr, '斤苹果加个袋子', f(curr), '元')
在上面的代码中我们将每个数量都去重,使得每次报价都至少有一个买家支付
键值对
在幼儿园、小学的课本里经常在中文上面标拼音使得我们能知道这个字怎么发音,如果用程序来做会是什么样子了
words = {'我': 'wo', '和': 'he', '你': 'ni'}
for k, v in words.items():
print('字: ', k, ' 发音: ', v)
我们以键值关系将它们对应上,就好比我们考试时候的连线题。
看到这里,我们已经接触了大多编程语言里面共有的知识点了,是不是有似曾相识的感觉,没错,这些问题在你生活中肯定遇到过所以没有想象中那么复杂,同艺术一样编程原理也是源于生活!
以一个9x9乘法表来汇总这边文章中的知识点
left = [i for i in range(1, 10)]
right = [i for i in range(1, 10)]
result = {}
for i in left:
for j in right:
result['row:' + i + 'x' + j] = i * j
关于文中的一些语法、关键字
语法这个东西也就是约定规范吧,知道是个什么东西就行了,每个语言中的关键字、用法都不一定一样但是功能却是一样的所以不用过多纠结。基本上都是看一下就会的所以不用担心。
学编程首先要学会怎么搜索到自己想要的知识,今天的任务就是把上面不懂语法、关键字弄懂。实在搞不懂问度娘呗