1、 条件控制
注:and和or优先级低于>、<和==判断符号。
#输入年份判断是否闰年
#coding=utf-8
year = int(raw_input("Please input year:"))
#1、非整百年:能被4整除的为闰年。(如2004年就是闰年,2001年不是闰年)
#2、整百年:能被400整除的是闰年。(如2000年是闰年,1900年不是闰年)
if (year%400==0 and year%100==0) or (year%4==0 and year%100!=0):
print "%d is 闰年" %year #整型用%d
if year%400==0:
print "%d is 世纪闰年" %year
else:
print "%d is not 闰年" %year
#输入x
x=int(raw_input("Please input x:"))
#输入y
y=int(raw_input("Please input y:"))
#判断x和y值范围
if x>60 and y>60:
print "x and y are >60"
elif x>60 or y>60:
print "x or y is >60"
else:
print "x and y are <=60"
2、循环语句
while语句
while 判断条件(condition):
执行语句(statements)…
#计算1到100总和
#coding=utf-8
i=sum=0
while(i<100):
i+=1
sum+=i
print sum
无限循环:通过设置条件表达式永远不为 false 来实现无限循环,如下:
#coding=utf-8
flag = 1
while (flag): print ('HELLO')
print ("Good bye!")
执行结果(无限输出HELLO,按ctrl+C可强制结束):
contiune、break和else
break 语句可以跳出 for 和 while 的循环体。从 for 或 while 循环中终止,任何对应的循环 else 块将不执行。
continue 语句跳过当前循环块中的剩余语句,然后继续进行下一轮循环。
else当条件语句为 false 时执行 else 的语句块
#coding=utf-8
i=0
while i<10:
i+=1
#如果i不能被2整除,继续执行下一个循环
if i%2!=0:
continue
#如果i>7,结束本次循环
elif i>7:
break
else:
print i
执行结果:
实现输入数值的连续运算:
#coding=utf-8
#实现计算方法一
#输入a
a=float(raw_input("input a:"))
while 1:
#输入运算符号
b=raw_input("input operator:")
#输入c
c=float(raw_input("input c:"))
#如果输入的是+,执行a+c
if b=="+":
a=a+c
print a
#如果输入的是-,执行a-c
elif b=="-":
a=a-c
print a
#如果输入的是*,执行a*c
elif b=="*":
a=a*c
print a
#如果输入的是/,执行a/c
elif b=="/":
a=a/c
print a
##如果输入运算符错误提示
else:
print "Input error.Please input as:+-*/"
break
执行结果:
#coding=utf-8
#实现计算方法二
#输入a
a=float(raw_input("input a:"))
while 1:
#输入运算符
b=raw_input("input operator:")
#输入c
c=float(raw_input("input c:"))
#运算符和计算操作放入字典
result={"+":a+c,"-":a-c,"*":a*c, "/":a/c}
#根据输入的运算符获取输入符号的表达式,value
a=result.get(b)
print a
for循环
for循环的一般格式如下:
for <variable> in <sequence>:
<statements>
else:
<statements>
for循环可以遍历任何序列的项目,如一个列表、元组或
者一个字符串,eg:
list=['a','b','c','d']
for i in list:
print i
执行结果:
通过索引遍历
#range() 函数可创建一个整数列表,打印从0-5。
for i in range(5):
print i
执行结果:
list=['a','b','c','d']
#len取list长度
for i in range(len(list)):
print i
执行结果:
for…else。for语句正常执行完成后会执行else语句。
for i in range(5):
print i
else:
print "Bye"
执行结果:
break 和 continue 语句及循环中的 else 子句
break 语句可以跳出 for 和 while 的循环体。从 for 或 while 循环中终止,任何对应的循环 else 块将不执行。
continue 语句跳过当前循环块中的剩余语句,然后继续进行下一轮循环。
for i in range(10):
# i=2时跳过当前循环块的语句,执行下一次循环
if i == 2:
continue
print i
# i=5时结束for循环
if i == 5:
break
print i
# for语句异常break终止不执行else
else:
print "Bye"
执行结果:
pass 语句
Python pass是空语句,是为了保持程序结构的完整性。
pass 不做任何事情,一般用做占位语句,如下实例
实例
while True:
… pass # 等待键盘中断 (Ctrl+C)
循环嵌套
#coding=utf-8
#冒泡排序写法一
list=[46,78,90,4,10,37]
#外层是比较的次数
for j in range(1,len(list)):
# 内层是每次参加比较的数比前一次-j,因为最大的已经移动到后面了
for i in range(0,len(list)-j):
#print "i",i
if list[i]>list[i+1]:
list[i],list[i+1]=list[i+1],list[i]
#打印出每次执行内部循环比较后的的列表值
print "内部比较循环第",i,"次","比较的两个数为:",list[i],list[i+1],"当前list的值:",list
#coding=utf-8
#冒泡排序写法二
list=[46,78,90,4,10,37]
#外层是比较的次数
for j in range(0,len(list)-1):
# 内层是每次参加比较的数比前一次-j,因为最大的已经移动到后面了
for i in range(0, len(list) - j-1):
# print "i",i
if list[i] > list[i + 1]:
list[i], list[i + 1] = list[i + 1], list[i]
# 打印出每次执行内部循环比较后的的列表值
print "内部比较循环第", i, "次", "比较的两个数为:", list[i], list[i + 1], "当前list的值:", list
执行结果: