for 循环+作业
-
和while循环不同,第二种实现方式是for循环。
-
for循环可以做的事情while循环都可以实现,之所以用for循环是因为在循环取值(即遍历值)时for循环比while循环的使用更为简洁,
for循环 语法如下:
for 变量名 in 可迭代对象: # 此时只需知道可迭代对象可以是字符串\列表\字典,我们之后会专门讲解可迭代对象
代码一
代码二
...
#例1
for item in ['a','b','c']:
print(item)
# 运行结果
a
b
c
# 补充! 如果需要遍历的在同一行,可在后面加,end(' ')
# 参照例1来介绍for循环的运行步骤
# 步骤1:从列表['a','b','c']中读出第一个值赋值给item(item=‘a’),然后执行循环体代码
# 步骤2:从列表['a','b','c']中读出第二个值赋值给item(item=‘b’),然后执行循环体代码
# 步骤3: 重复以上过程直到列表中的值读尽
与while 相比较,for 变量名 in 可迭代对象的比较案例:
# 简单版:for循环的实现方式
for count in range(6): # range(6)会产生从0-5这6个数
print(count)
# 复杂版:while循环的实现方式
count = 0
while count < 6:
print(count)
count += 1
案例二:遍历字典!
# 简单版:for循环的实现方式
dic = {'name':'jason','age':18,'gender':'male'}
for k in {'name':'jason','age':18,'gender':'male'}: # for 循环默认取的是字典的key赋值给变量名k
print(k:dic{k})
for 的循环嵌套:
#请用for循环嵌套的方式打印如下图形:
*****
*****
*****
for i in range(3):
for j in range(5):
print("*",end='')
print() # print()表示换行
- break和continue也可以使用。使用方法同whlie 。
与之相关练习可查看日记3/10日
# 一:for循环
# 1.1 for循环嵌套之打印99乘法表
for i in range(1,10):
for j in range(1,i+1):
print('{}*{}={}'.format(j,i,j*i),end=' ')
print('')
# 1.2 for循环嵌套之打印金字塔
# 提示分析如下
number = int(input("请输入金字塔的层数:"))
for i in range(number):
print(' '*(number-i)+'*'*(2*i-1))
#max_level=5
# * #current_level=1,空格数=4,*号数=1
# *** #current_level=2,空格数=3,*号数=3
# ***** #current_level=3,空格数=2,*号数=5
# ******* #current_level=4,空格数=1,*号数=7
# ********* #current_level=5,空格数=0,*号数=9
#数学表达式
# 空格数=max_level-current_level
# *号数=2*current_level-1
# 1.3 用for+range改写今日早晨默写的代码,作为明天默写内容
username = 'egon_dsb'
userpsw = '666'
for i in range(3):
user_name = input('请输入您的用户名')
user_psw = input('请输入您的密码')
if user_name == username and user_psw == userpsw:
print('登录成功')
while True:
cmd = input('请输入您的命令指令>:q退出')
if cmd == 'q':
break
else:
print('命令{}正在运行'.format(cmd))
break
else:
print('账户密码输入错误')
i +=1
#二:字符串操作
# 写代码,有如下变量,请按照要求实现每个功能 (共6分,每小题各0.5分)
name = ' aleX'
# 1) 移除 name 变量对应的值两边的空格,并输出处理结果
name1 = name.strip()
print(name1)
# 2) 判断 name 变量对应的值是否以 "al" 开头,并输出结果
name2 = name.startswith('al')
print(name2)
# 3) 判断 name 变量对应的值是否以 "X" 结尾,并输出结果
name3 = name.endswith('X')
print(name3)
# 4) 将 name 变量对应的值中的 “l” 替换为 “p”,并输出结果
name4 = name.replace('l','p')
print(name4)
# 5) 将 name 变量对应的值根据 “l” 分割,并输出结果。
name5 = name.split('l')
print(name5)
# 6) 将 name 变量对应的值变大写,并输出结果
name6 = name.upper()
print(name6)
# 7) 将 name 变量对应的值变小写,并输出结果
name7 = name.lower()
print(name7)
# 8) 请输出 name 变量对应的值的第 2 个字符?
name8 = name[1]
print(name8)
# 9) 请输出 name 变量对应的值的前 3 个字符?
name9 = name[0:3]
print(name9)
# 10) 请输出 name 变量对应的值的后 2 个字符?
name10 = name[-2:]
print(name10)
# 11) 请输出 name 变量对应的值中 “e” 所在索引位置?
name11 = name.find('e')
print(name11)
# 12) 获取子序列,去掉最后一个字符。如: oldboy 则获取 oldbo。
name12 = name[:-1]
print(name12)