python程序顺序、分支与循环语句

if...elif...else 语句

 
 1 # 求一个不超过五位数的正整数是几位数
 2 n=int(input('please input number:'))
 3 if n<1000:
 4     if n<10:
 5         print('one')
 6     elif n<100:
 7         print('two')
 8     else:
 9         print('three')
10 else:
11     if n<10000:
12         print('four')
13     else:
14         print('five')
15 # 注释:本体使用折半思想,折半思想适合用在在一个大量数据中查找某个数

 

for循环

 1 # 给定一个正整数,判断该数的位数,打印出个位、十位、百位、千位到最高位的数字
 2 代码一(从个位到最高位)
 3 a=input()
 4 b=len(a)
 5 a=int(a)
 6 for i in range(b):
 7     print(a%10)
 8     a=a//10
 9 代码二(从最高位到个位)
10 a=input()
11 b=len(a)
12 a=int(a)
13 for i in range(b,0,-1):
14     print(a//10**(i-1))
15     a=a%10**(i-1)
16 #注释:找到规律,可以用几行循环代码得出结果
1 # 求100以内所有奇数之和:
2 sum=0
3 for i in range(1,100,2):
4     sum+=i
5 print(sum)
6 注释:range函数步跳是效率很高的循环

 

while循环

 1 # 打印前n个斐波那契数列(使用临时变量法)
 2 a=0
 3 b=1
 4 sum=0
 5 n=int(input())
 6 while n>0:
 7     sum=a+b
 8     a = b
 9     b = sum
10     n -= 1
11     print(a)
12 
13 # 打印前n个斐波那契数列数列(不使用临时变量)
14 a=0
15 b=1
16 c=0
17 n=int(input())
18 while c<n:
19     a,b=b,a+b
20     c+=1
21     print(a)

 

if语句,for循环与while循环都可以彼此嵌套

 1 # 打印菱形(菱形为奇数行)
 2 n=int(input())
 3 m=n//2
 4 for i in range(-m,m+1):
 5     if i<=0:
 6         print((-i)*' '+(n+2*i)*'*')
 7     else:
 8         print(i*' '+(n-2*i)*'*')
 9 
10 #打印闪电型图形(奇数)
11 n=int(input('odd number:'))
12 b=n//2
13 for i in range(-b,b+1):
14     if i<0:
15         print((-i)*' '+(b+i+1)*'*')
16     elif i==0:
17         print(n*'*')
18     else:
19         print(b*' '+(b-i+1)*'*')
20 
21 # 打印对角三角形(奇数)
22 n=int(input())
23 m=n//2
24 for i in range(-m,m+1):
25     if i<=0:
26         print((m+i)*' '+((-i)*2+1)*'*')
27     else:
28         print((m-i)*' '+((i)*2+1)*'*')
29 
30 注释:像这种打印对称图形的问题都可以采用这种方法,将图形分成两部分考虑
 1 # 输入若干个数,打印出最大数(有退出条件)
 2 代码一:
 3 n=0
 4 while True:
 5     b=input()
 6     if b=='q':
 7         break
 8     elif n==0:
 9         b=int(b)
10         a=b
11         n=n+1
12         print(a)
13     else:
14         b=int(b)
15         if b>a:
16             a=b
17             print(a)
18         else:
19             print(a)
20 #注释:n的作用只在第一次循环中将第一次输入的值赋值给b,并打印出来;输入q退出
21 代码二
22 a=int(input())
23 while True:
24     b=input()
25     if b:
26         b=int(b)
27         if b>a:
28             a=b
29             print('max is'a)
30         else:
31             print('max is'a)
32     else:
33         break
34 #注释:该代码简洁,退出条件为回车键(因为回车键代表输入空,为假;假则进入else,执行break,打断循环)

 

 1 # 打印九九乘法表
 2 for i in range(1,10):
 3     for j in range(1,i+1):
 4         print(j,'×',i,'=',j*i,end='\t')
 5     print()
 6 
 7 # 打印右上方乘法表
 8 for i in range(1,10):
 9     s=''
10     for j in range(i,10):
11         s += '{}*{}={:<{}}'.format(i,j,i*j,3 if j<4 else 4)
12     print('{:>70}'.format(s) )
13 #注释:.format函数{}可以嵌套;该方法运用了 三目表达式

 

三目表达式:熟练运用三目表达式可减少代码行数

if 条件1:

     语句1
else:
      语句2
三目表达式:语句1  if  条件1  else  语句2          # 没有冒号

 

 

 

posted @ 2018-03-25 11:12  蘑菇的步伐  阅读(1591)  评论(0编辑  收藏  举报