Python条件判断if、for、while
if条件判断
if 条件判断: 逻辑操作...... ......
判断字符串是否为空
if a.strip(): #表示字符串不为空 pass
判断是否为字典
d = dict(a=1) if isinstance(d,dict): print("{0} is a dict".format(d))
例子:
age = input("Please input your age: ") if age.strip(): if age.strip().isdigit(): # str.isdigit() 检查字符串是否只由数字组成 if int(age) >= 18: print("你是一个成年人!") else: print("你还是一个小屁孩!") else: print("你输入的不是数字!") else: print("你输入的年龄不符合要求")
if 条件判断: 逻辑操作...... ...... elif 条件判断: 逻辑操作...... ...... else: 逻辑操作......
例子:
number = input("Please input a number: ") if int(number) > 0: print("{0} 是正数".format(number)) elif int(number) < 0: print("{0} 是负数".format(number)) else: print("输入的数字是{0}".format(number))
while循环
while 条件判断: 逻辑操作...... ......
例子:
a = 100 while a >= 1: print(a) a -= 1
while中使用break和continue
while 1: 这个比while True效率高,因为1更接近与机器编码格式
break 满足某个条件时,立即结束当前循环
continue 跳过当前循环的剩余语句,继续进行下一轮循环
例子:
while 1: age = input("Please input your age: ") if age.strip(): if age.strip().isdigit(): if int(age) >= 18: print("你是一个成年人!") break # 遇到break就会终止,break之后的语句就都不会执行了 else: print("你还是一个小屁孩!") break else: print("你输入的不是数字!") else: print("你输入的年龄不符合要求,请重新输入") continue # 遇到continue会跳出本次循环,进入下一次循环
九九乘法表
分析: 1 1x1=1 2 1x2=2 2x2=4 3 1x3=3 2x3=6 3x3=9 a x b = a*b a最小是1,最大为行号 b等于行号 代码如下: for b in range(1, 10): for a in range(1, b+1): print("{0}x{1}={2}".format(a,b,a*b),end=" ") # python3中的空格 end="" if a == b: print() # 相当于换行 还有一种一行写法: print('\n'.join(' '.join("{0}x{1}={2}".format(x, y, x*y) for x in xrange(1, y+1) )for y in xrange(1, 10)))
练习1:
输入一行字符,分别统计出其中的英文字母、空格、数字和其他字符个数。
''' str.isdigit() 检查字符串是否只由数字组成 str.isalpha() 检查字符串是否只由字母组成 str.isspace() 检查字符串是否只由空格组成 ''' something = input("请随便输入一些内容: ") while len(something) > 0: digit, letters, space, other = 0, 0, 0, 0 for i in something: if i.isdigit(): digit += 1 elif i.isalpha(): letters += 1 elif i.isspace(): space += 1 else: other += 1 print("数字有:{0}个\n英文字母有:{1}个\n空格有:{2}个\n其他字符有:{3}个".format(digit,letters,space,other)) break
练习2:
输入一个数,求它的阶乘。
num = int(input("请输入一个数字: ")) factorial = 1 if num < 0: print("负数没有阶乘") elif num == 0: print("0 的阶乘为 1") else: for i in range(1, num + 1): factorial = factorial * i print("{0} 的阶乘为:{1}".format(num, factorial))