Python第三节课
Mon 06 Mon 13 for循环 占位符 嵌套 涉及范围 基础教程——3
for 循环
for i in "python": print(i, end="") # 默认print()会有一个换行符,也就是end="\n" # 如果end=""里面填写的是别的话~~~ # 输出 print("123", end="^") 123^ # 其实就是将换行符换成了^
重点:
for循环遍历的对象必须是可以迭代的对象
不可以进行迭代的对象,是不能进行for循环的
小测试:
01:请将“hello world”进行遍历
02:现在我们需要将hello world的输出形式进行调整,输出格式如下
h*e*l*l*o w o r l d
03:请将你的好朋友的名字,使用列表存放,并且依次输出。
04:使用for循环,实现1+2+3……+10
思考:如果我们现在要求1+2+3……+100甚至是+1000该怎么办?
# 第一题 for i in "hello world": print(i, end="") # 第二题 # 方法一 a = "hello world" for i in a[0:5]: print(i, end="*") for ii in a[6:]: print(ii, end=" ") # 方法二 a = ['hello', 'world'] for i in a: if i == 'hello': for j in i: print(j, end='*') else: for j in i: print(j, end=' ') # 方法三 i =0 for a in "hello world": if i < 5: i=i+1 print(a,end='*') else: print(a,end=' ') # 第三题 ab = ["李纳斯", "乔布斯", "比尔盖茨", "霍金", "凯撒"] r = 0 for i in ab: r += 1 print(f"世界名人第{r}位:{i}") # 第四题 sum = 0 for i in range(1, 2): print(i, end='') for ii in range(2, 101): print(f" + {ii}", end='') for x in range(101): sum += x if x == 100: print(f" = {sum}", end='')
以上便是for循环的介绍
占位符
格式符 %
我们可以使用格式符来对字符进行格式的限制
%d 表示十进制
%s表示字符串
%f表示浮点数
格式符表示站位,我们往往需要使用% 表示真实数据的传输
例如:
‘%d’%2.13
这个时候,2.13 将通过% 传输到前面的占位符处,
当数据类型不符合规定的数据类型时,会报错
扩展:
'%d'%3.14 ---> 3 '%2d'%3.14 ---> 空格3 '%.2d'%3.14 ---> 03 '%f'%3.1415926 ---> 3.141593 精度为6 '%.3f'%3.14 ---> 3.140
test03:
使用for 和 if 结合,来判断一个数字是否是质数
只能被1和自己本身整除
1既不是质数,也不是合数
# 质数大于1 num = int(input("输入一个数值:")) if num > 1: for i in range(2, num): if (num % i) == 0: print(num, "不是质数") print(i, "乘于", num//i, "是", num) break else: print(num, "是质数") else: print("当前数值不为质数,小于1")
嵌套
for 嵌套
for i in range(5): for j in range(5): print('*', end='') print()
for实现9*9口诀
for i in range(1, 10): for j in range(i, i+1): print(f"{i} x {j} = {i*j}", end='') print()
for 9*9口诀样子
# 9*9口诀:左箭头样子 # 整倍数 ins = 5 for i in range(1, 10): if i <= 5: print(''.center((10 - i)*ins), end='') else: print(''.center(i * ins), end='') for j in range(1, 10): print(f"{i} x {j} = {i*j}", end=' ') print() # 9*9口诀:菱形样子 ins = 6 for i in range(1, 10): print(''.center((10 - i) * ins), end='') for j in range(1, i+1): print(f"{i} x {j} = {i*j}", end=' ') print('\n') for i in range(1, 10): print(''.center(i * ins), end='') i = 10 - i for j in range(1, i+1): print(f"{i} x {j} = {i*j}", end=' ') print('\n')
是不是有种很惊奇的样子?
for嵌套方法,其实就是一种多个for进行遍历。简单点来说,1~2之间有什么?1.1,1.2,1.3就是这个意思,第一个for有课第一个数之后,在对第二个for的第二个数进行遍历。
两道题,第一题是猜年龄,随机出现一个年龄数字,只能才三次哦。
import random
fol = random.randint(17, 28)
# print(fol)
for i in range(1, 4):
ints = int(input("请输入你猜的数字:"))
if ints > fol:
print("没那么老!")
elif ints < fol:
print("太年轻了!")
else:
print("猜对了")
break
第二题,有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少?
for i in range(1, 5):
for j in range(1, 5):
for k in range(1, 5):
if i != j and j != k and i != k:
print(f'{str(i) + str(j) + str(k)}', end=' | ')
本文如果出现什么不正确的地方,还请多多指出!谢谢大家阅读!