3.流程控制语句

1.已知点的坐标(x, y),判断其所在的象限。

x = int(input( "  请输入x的坐标:  "  ))
y
= int(input( " 请输入y的坐标: " )) if x > 0 and y > 0 : print ( " 第一象限 " ) elif x < 0 <= y : print ( " 第二象限 " ) elif x < 0 and y < 0 : print ( " 第三象限 " ) elif x >= 0 > y : print ( " 第四象限 " ) elif x == 0 and y == 0 : print ( " 原点 " )

输出结果:

请输入x的坐标:3 请输入y的坐标: 6 第一象限

请输入x的坐标:
-6 请输入y的坐标: 5 第二象限

请输入x的坐标:
-9 请输入y的坐标: -5 第三象限

请输入x的坐标:
1 请输入y的坐标: -2 第四象限

请输入x的坐标:0
请输入y的坐标:0
原点

2、请根据BMI公式(体重除以身高的平方)计算BMI指数,

BMI指数如下:低于18.5:过轻
18.5-25:正常
25-28:过重
28-32:肥胖
高于32:严重肥胖
请输入小明身高1.75和体重80.5kg,用if-elif语句帮小明判断并打印BMI结果。

weight = float(input( "  请输入体重(kg):  "  ))
height
= float(input( " 请输入身高(m): " ))
BMI
= weight / height ** 2 print ( " BMI: " ) if 0 < weight < 18.5 : print ( " 过轻 " ) elif 18.5 <= BMI < 25 : print ( " 正常 " ) elif 28 <= BMI < 32 : print ( " 肥胖 " ) else : print ( " 严重肥胖 " )

输出结果:

请输入体重(kg):66 请输入身高(m): 190 BMI:
严重肥胖

 

3、输入一个数字,按照如下条件处理:如果该数字各位数之和为奇数,则将该数各位数逆序输出(如输入122,则输出为221);如果该数字各位数之和为偶数,则直接输出该数字(如输入123,则输出为321)。

a = int(input( "  请输入一个三位数:  "  ))
b
= int(a % 10 )
c
= int(a // 10) % 10 d = int(a // 100 ) # print("{}={}+{}*10+{}*100".format(a, b, c, d)) f = (b+c+ d) print ( " 各数字之和为 " ,f) if ((b + c + d) % 2 == 0) : print ( " 输出偶数: " , a) else :
a
= str(a) print ( " 输出奇数 " , a[: :-1])

输出结果:

请输入一个三位数:122
各数字之和为 5
输出奇数 221

请输入一个三位数:123
各数字之和为 6
输出偶数: 123

方法二:

a = int(input( "  请输入一个数:  "  ))  #  百位 
baiw = int(a/100 )  #  十位 
shiw = int(a/10)%10
 #  个位 
gew = a%10
 #  求和 
he = baiw + shiw + gew  if  he %2 == 0:  #  偶数 
     print ( "  偶数,直接输出  "  , a)  else  :  print ( "  奇数,逆序输出  " ,gew,shiw,baiw)

输出结果:

请输入一个数:>? 123 偶数,直接输出 123 请输入一个数: >? 122 奇数,逆序输出 2 2 1

 

4、请分别使用while和for语句输出1至100的奇数和。

 #  while语句 
i=1 sum = 0  while  i<=100 :  if  i%2 != 0:
sum
=sum + i
i
+=1 print ( " 1-100的奇数累积和为:%d " %sum)

输出结果:

1-100的奇数累积和为:2500
 #  for语句 
sum= 0  for  n  in  range(1,101 ):  if  (n%2==1 ):
sum
=sum + n print ( " 1-100的奇数和= " ,sum)

输出结果:

1-100的奇数和= 2500


5、编写程序输出1到100中同时被3和5整除的数。

 for  a  in  range(1,101 ):  if  a%3==0  and  a%5== 0:  print ( '  被3和5整除  ' ,a)

输出结果:

被3和5整除 15 被3和5整除 30 被3和5整除 45 被3和5整除 60 被3和5整除 75 被3和5整除 90

 


6、有3、5、7、8、9共五个个数字,能组成多少个互不相同且无重复数字的三位数,并输出这些数字。

 from  random  import  random  import  list1 as list1  import  lst as lst

number
= [3, 5, 7, 8, 9 ] for x in range(0, 5 ): for y in range(0, 5 ): for z in range(0, 5 ): if not (x == y or y == z or x == z): print ( ' {} {} {} ' .format(number[x], number[y], number[z], ))
f
= 5 * 4 * 3 print ( " 能组成互不相同且无重复数字的三位数: " , f)

输出结果:

3 5 7
3 5 8
3 5 9
3 7 5
3 7 8
3 7 9
3 8 5
3 8 7
3 8 9
3 9 5
3 9 7
3 9 8
5 3 7
5 3 8
5 3 9
5 7 3
5 7 8
5 7 9
5 8 3
5 8 7
5 8 9
5 9 3
5 9 7
5 9 8
7 3 5
7 3 8
7 3 9
7 5 3
7 5 8
7 5 9
7 8 3
7 8 5
7 8 9
7 9 3
7 9 5
7 9 8
8 3 5
8 3 7
8 3 9
8 5 3
8 5 7
8 5 9
8 7 3
8 7 5
8 7 9
8 9 3
8 9 5
8 9 7
9 3 5
9 3 7
9 3 8
9 5 3
9 5 7
9 5 8
9 7 3
9 7 5
9 7 8
9 8 3
9 8 5
9 8 7 能组成互不相同且无重复数字的三位数: 60

方法二:

 import  random
lst
= [5, 6, 7, 8, 9 ]
st
= set() # 概率 for i in range(1000 ): # 用列表中的数字组成随机数的样本 lst1 = random.sample(lst, 3 ) # 排除重复的数字 lst1 = [str(a) for a in lst1]
lst2
= "" .join(lst1)
st.add(lst2)
print ( " 共有 {0} 个数字,分别为:{1} " .format(len(st), st))

输出结果:

共有 60 个数字,分别为:{ '  867  ' ,  '  689  ' ,  '  569  ' ,  '  875  ' ,  '  785  ' ,  '  678  ' ,  '  789  ' ,  '  796  ' ,  '  856  ' ,  '  695  ' ,  '  687  ' ,  '  659  ' ,  '  756  ' ,  '  578  ' ,  '  587  ' ,  '  879  ' ,  '  798  ' ,  '  795  ' ,  '  568  ' ,  '  567  ' ,  '  586  ' ,  '  597  ' ,  '  675  ' ,  '  589  ' ,  '  869  ' ,  '  698  ' ,  '  896  ' ,  '  859  ' ,  '  786  ' ,  '  579  ' ,  '  697  ' ,  '  768  ' ,  '  965  ' ,  '  769  ' ,  '  598  ' ,  '  968  ' ,  '  876  ' ,  '  976  ' ,  '  985  ' ,  '  978  ' ,  '  765  ' ,  '  685  ' ,  '  865  ' ,  '  956  ' ,  '  957  ' ,  '  897  ' ,  '  576  ' ,  '  987  ' ,  '  657  ' ,  '  975  ' ,  '  759  ' ,  '  895  ' ,  '  986  ' ,  '  679  ' ,  '  596  ' ,  '  758  ' ,  '  958  ' ,  '  857  ' ,  '  658  ' ,  '  967  ' }

 

7、用for循环实现用户登录

要求如下:
提示输入用户名和密码。
判断用户名和密码是否正确(name=admin,passwd=123456)。
登录仅有三次机会,超过3次会报错。

 for  i  in  range(3 ):
name
= input( ' 请输入用户名: ' )
passwd
= input( ' 请输入密码: ' ) if name == ' admin ' and passwd == ' 123456 ' : print ( ' 密码正确! ' ) break else : print ( ' 密码错误 ' ) print ( ' 你还有 %d 次机会 ' % (2 - i)) else : print ( ' 请退出重新登录! ' )

 方法二:  for  i  in  range(3 ):
name
= input( " 请输入用户名: " )
passwd
= input( " 请输入密码: " ) if name == " admin " and passwd == " 123456 " : print ( " 登录成功 " ) break else : print ( " 登录次数过多,登录失败 " )

 

输出结果:

 请输入用户名:admin
请输入密码:
123456 密码正确!

请输入用户名:admin
请输入密码:2344t
密码错误
你还有 2 次机会
请输入用户名:

  请输入用户名:admin
请输入密码:
2345 请输入用户名:admin
请输入密码:
123653 请输入用户名:admin
请输入密码:
23344 登录次数过多,登录失败
请输入一个数字

 


8、使用for循环计算7的阶乘。

sum = 7
 for  n  in  range(1, 7 ):
sum
= sum * n print ( " 7的阶乘= " , sum)

输出结果:

7的阶乘= 5040
 #  使用for循环计算7的阶乘 
a = int(input( "  请输入一个数字  "  ))
n
= 1 if a< 0: print ( " 负数没有阶乘 " ) elif a == 0: print ( " 0的阶乘为1 " ) else : for i in range(1, a + 1 ):
n
= n * i print ( " 结果= " , n) # 递归函数实现阶乘 def fact(n): if n== 0: return 1 else : return n * fact(n-1 ) print ( " 结果= " , fact(7 )) # 使用数学函数实现阶乘 import math print ( " 结果= " , math.factorial(7 )) # 使用lambda实现阶乘 from functools import reduce
a
= reduce( lambda x, y:x*y, range(1, 8 )) print ( " 结果= " , a)

 


9、由星号组成的等边三角形。

n = eval(input( "  请输入一个整数:  "  ))  for  i  in  range(1, n + 1, 2 ):  print ( "  {0:^{1}}  " .format( '  *  '  * i, n))
请输入一个整数:9
    *    
   ***   
  *****  
 ******* 
*********

 

标签: python

添加新评论