本篇介绍python语言中所有的语句,判断语句if,循环语句for和while,以及用到的break,continue和pass等语句。
首先说一下一个管用C++(但是一点都不精通)的憨批对于python编程的看法。C++的语句大家都知道,无论条件还是循环语句,都在后面跟一对大括号 { },大括号里就是该条件下执行的语句,但python没有大括号,其是以对其的方式来标志哪些子句是哪个条件下的执行体,这样就使得语句被迫结构很整齐,感觉这是很好的一点。还有一点就是无论循环还是条件语句,判断条件后面都有一个冒号,以表示开始执行。
且在python中,可以不把判断条件用小括号括起来。
其余的在后边总结。下面开始正式内容。
一、条件语句(if-else)
例句1:
a=1while a<7:if a%2==0 :print("%d is even" % a)else:print(a,"is odd")a+=1
可以看到比较简单,总结为以下几点:
(1)if和else后面都要加冒号,表示判断体的开始;
(2)判断条件可以用<=,&,|,也可以用1<a<3这种连续区域(不同于C);
(3)执行体的结束以语句对齐为标志;
(4)有很重要的一点,若干个判断条件同时需要满足时,需要把判断条件各自括起来:
if (a%2==0) & (a<5) & (a>2) :
例句2:
num = 3if num == 3: # 判断num的值print('boss')elif num < 0: # 值小于零时输出print('error')else:print('roadman')
需要注意,
(1)即else-if缩写为elif;
(2)由于python不支持switch,所以只能用多种情况elif;
例句3:
num = 9if num >= 0 and num <= 10: # 判断值是否在0~10之间print('hello')num = 5if num > 0 or num < 4: # 判断值是否在小于0或大于10print('hello')else:print('undefine')
表达多个条件同时成立,不仅可以用&和|,还可以用and和or,而且用后者的时候不需要用括号括起来每个条件。
例句4:
a=1while a<7:if a%2==0: print("%d is even" % a)else: print(a,"is odd")a+=1
简单的句子可以直接加在冒号后边,不需要另起一行。
二、循环语句
循环类型:分为for循环和while循环,还要二者相互嵌套。
循环控制语句:
(1)break语句:终止循环,跳出整个循环;
(2)continue语句:跳出该次循环,执行下一次循环;
(3)pass语句:空语句,保持结构的完整性;
注意:上面三者都是循环控制语句,都能结束/跳出循环,而不是跳出判断语句。
1. while语句
例句1:
i = 1while i < 10:i += 1if i%2 > 0:# 奇数时跳过,偶数时输出continueprint(i)
以上是一个简单的例句,使用了continue。
例句2:
count = 0while count < 5:print (count, " is less than 5")count = count + 1else:print (count, " is not less than 5")
在python中,while-else语句能在循环条件在false时执行else语句块。这个可以用来标志判断结束,建议大家可以使用,但没有什么太大用处。
例句3:
numbers=[12,37,5,42,8,3]odd=[]even=[]while len(numbers)>0:number=numbers.pop()if number%2==0:even.append(number)else:odd.append(number)print(even)print(odd)
这个是一个比较复杂的例句,涉及到了列表的append()和pop()操作,此处不详解。
2. for语句
一般格式为for expr in rangeexpr: 循环体。
一般会用到range(),具体例句如下。
例句1:
for letter in 'Python': # 第一个实例print("当前字母: %s" % letter)fruits = ['banana', 'apple', 'mango']for fruit in fruits: # 第二个实例print('当前水果: %s' % fruit)print("Good bye!")输出实例:当前字母: P当前字母: y当前字母: t当前字母: h当前字母: o当前字母: n当前水果: banana当前水果: apple当前水果: mangoGood bye!
注解:一般来说,for后面的范围如果直接写了一个字符串或者一个列表,那么前面的单个变量就代表字符串中的每个字符或者列表中每个元素。
访问列表中的每个元素或者字符串中每一个字符有很多种方法,如还可以通过len()函数。此处的range()函数里边有两个参数,分别代表的上下限(一个参数就是上限,下限0)
fruits = ['banana', 'apple', 'mango']for index in range(len(fruits)):print('当前水果 : %s' % fruits[index])print("Good bye!")输出:当前水果 : banana当前水果 : apple当前水果 : mangoGood bye!
例句2:
for num in range(20): # 迭代 10 到 20 之间的数字for i in range(2,num): # 根据因子迭代if num%i == 0:# 确定第一个因子break # 跳出当前循环else: # 循环的 else 部分print ('%d 是一个质数' % num)输出:0 是一个质数1 是一个质数2 是一个质数3 是一个质数5 是一个质数7 是一个质数11 是一个质数13 是一个质数17 是一个质数19 是一个质数
这里range()我分别写了一个参数和两个参数的情况。而且忽然发现这个else真的很巧妙,如果for循环体没有执行的话,他才会执行,弥补了C语言中这样的东西必须加一个flag参数记录,大家可以注意一下。
3. continue,pass语句
例句1:
var = 6while var > 0:var = var -1if var == 2 or var == 4:continueprint ('当前值 :', var)print ("Good bye!")
continue有删除的作用,希望记下,投入使用。
例句2:
pass是空语句,为了保持结构的完整性。python 3.X版本中可以写也可以不写,一般用于def函数占位置。
# 占位置def sample(n_samples):pass
for letter in 'Python':if letter == 'h':passprint '这是 pass 块'print '当前字母 :', letterprint "Good bye!"输出:当前字母 : P当前字母 : y当前字母 : t这是 pass 块当前字母 : h当前字母 : o当前字母 : nGood bye!
总结:
(1)以行结尾,每行结束时不用分号;
(2)每个语句后面用冒号;
(3)注意&和|,以及and和or的各自使用括号的情况;
(4)注意循环语句中配的else语句,应用比较巧妙,弥补了C语言中的不足;
(5)continue用来删除,pass用来def函数占位置;
(6)range()函数分为一个参数和两个参数;
(7)列表中的各种函数,append()和pop();
(8)遍历字符串,列表,元组等的方法;