开学有一个月了,忙里忙外得感觉脱不开身,其实大半是在自己找的没劲事吧(笑
先说明我是一个彻头彻尾的小白。。基本什么都不懂。而且一般来说新手程序员应该第一个接触C语言,可有意思的事我上的第一节专业课居然是选修课Python。。于是现在就是必修C语言的学习进度比Python慢了一个月的课
所以打算先写写Python的心得,也为C语言积累一些经验,同时方便自己回顾。
(注:日记体)
9.26
关于python range
1.
for i in range(100,-1,-1):
print(i)
解释一下(100,-1,-1)的意义:
100,-1即从100到0(-1这儿是开区间),第二个-1的意义是该数列的公差是-1。如是解决了为啥每次键入for i in range(100,-1):都print不出来的问题。
2.给定一个n,利用for循环求1*3*5*...2*n-1的值
n=5
t=1
for i in range(1,2*n+1,2):
t=t*i
print(t)
问题很大:关于循环,是给定n值,这个n不是数学中常见的那种无限大的n,而是(注意)“给定”,即“赋值”。
问:为什么要又设个“t=1”?
答:因为如果用“n=n*i”,那么相当于最初的循环,新n就被i乘了个“5”上去。其实赋值给n就是为了限定i的值们。而“t=t*i”则是在求题目要求的值。
另外从几个错误的实践中n=5
t=1
for i in range(1,2*n-1,2):
n=t*i ***由于没形成循环,这里的i只输出一个,而这唯一的一个i为啥就是7呢***
print(n)
7
从中发现,似乎第一个i值是从最后一个算起的?不知道咋回事。。
3.
a=1
b=-1
c=0
if a>b:
print(a)
else:
if a<b:
print(b)
else:
print(c)
问题越来越大。。有几个关于循环逻辑的问题:1.严格的对齐 2.嵌套。。嵌套很是问题!之前的
if a>b:
print(a)
if a<b:
print(b)
else:
print(c)
1
0
输出了两项就是因为嵌套不合适(第一个if被独立开了,由于对齐的自动辨认,该else仅作用于上一个if)
再说说正确的那个循环:第一个if之后限定了else(包括a小于等于两种情况)再if,再else,情况说完(第二个if于之后的else并列)
如是嵌套,所以结果唯一。