if语句
- 两种写法:
”语句式“既多行写法
”表达式“既单行写法:a = 1 if a>b else b = 1
- 注意:
是冒号(:)和缩进
用pass表示空语句 - 实例
根据下列条件编写一个公司绩效等级判断的程序。
用户输入一个0~100的绩效评分,若绩效分数小于60等级为D,分数大于等于60并小于70等级为C,分数大于等于70并小于85等级为B,分数大于等于85等级为A。若输入评分不符合规定则提示用户输入错误。
grade = int(input("请输入绩效:"))
if grade <= 60:
print("D")
elif grade < 70 and grade >= 60:
print("C")
elif grade < 85 and grade >= 70:
print("B")
elif grade >= 85:
print("A")
else:
print("输入有误!")
for语句
- 写法
表达式写法:
for 循环变量 in 容器: #容器为可迭代对象或迭代器
循环体
单行写法:列表推导式:[x for x in ... (if ...)]
- for之前:将要重复计算的公式
- for 和 in 之间:从迭代器中提取的循环变量
- in 之后:可迭代的对象或迭代器
- 注意:
冒号(:)和缩进
可加else语句 - 实例1
请编程计算1+3…+99+101
sum = 0
for i in range(1,102,2):
sum += i
print(sum)
- 实例2
统计字符串“hfuiwofsdiobais”中字母“i”出现的次数
n = 0
str = "hfuiwofsdiobais"
for i in str:
if(i == "i"):
n += 1
- 实例3
输入正整数n,判断其是否为素数
import math
flag = 0
n = int(input("请输入一个正整数:"))
for i in range(2,int(math.sqrt(n))):
if(n % i == 0):
flag = 1
break
if(flag == 1):
print("%d不是素数"%n) #输出带变量,和C稍微有点点不一样
# print(n,"不是素数") 也可以直接这样写,但是这样的话n后会有一个空格
else:
print("%d是素数"%n)
- 实例4
输入一段字符串,打印出这个字符串中出现过的字符的出现次数
如:输入:abcdabcaba
打印:
a: 4次
b: 3次
d: 1次
c: 2次
注: 不要求打印的顺序
s = input("请输入: ") # abcdabcaba
# 创建一个字典用来保存字符的个数
d = {}
for ch in s:
# 先判断这个字符以前是否出现过
if ch not in d: # 第一次出现
d[ch] = 1 # 将次数设置为1,创建 键值对
else: # 不是第一次出现,更新次数
d[ch] += 1
# 打印字符和出现过的次数,键为字符,值为对应的次数
for k in d:
print(k, ':', d[k], '次')
while语句
- 写法
while (循环条件):
循环体
- 注意
冒号(:)缩进
可加else
break continue 适用
没有do while语句 - 实例1
请用while语句编程绘制下列图形
i = 1
while i<= 3:
print(" "*(3-i) , "*"*(2*i-1))
i += 1
- 实例2
请用while解决鸡兔同笼问题,假设有30个头,84只脚
feet = 84
head = 30
n = 1
while (2*n + 4 *(head - n) > feet):
n += 1
print("鸡有%d只"%n)
print("兔子有%d只"%(head-n))
- 实例3
求322和115的最大公约数。(用辗转相除法)
m = 322
n = 115
while (n != 0):
m = m%n
m,n = n,m
print("最大公约数为:%d"%m)