Python基础——循环语句

文章目录

  • 一,while循环
  • 二,for循环
  • 三,练习题

一,while循环

语法结构

while (循环条件):
	循环体  (要注意缩进)

举个例子,计算100以内的奇数和

sum = 0 #给sum赋初值
n = 1  #给n赋初值
while n < 100: #判断当n小于100时,执行循环体
	sum += n #循环计算sum加n
	n += 2  #同上
print(sum)  #输出sum的最终值

输出结果
在这里插入图片描述

打印一个递增的 “ * ”图案

layer = int(input("请输入要打印的行数:")) 
index = 1 #用来执行至与行数相同的次数所设的值
while index <= layer: 
	j = 1     #从第一行开始,每行*的个数 
	while j <= index: #嵌套循环
		print("*",end="")   #end=“”表示不换行
		j += 1 
	print() 
	index += 1 

输出结果
在这里插入图片描述

二,for循环

(这里仅介绍 for in 类型 )
for in 是用来遍历容器的一种循环(这里的容器一般为可迭代对象)
结构为

for 变量名 in 容器:
	循环体 
	
在循环体中添加:	
break     #表示结束循环
continue  #继续循环

容器是python中的一种数据类型,常用的容器函数为 range()
range()常见两种格式:

  1. range(参数) ——表示从0开始到参数结束的此区间内所有的整数,属于前闭后开区间
  2. range(参数1,参数2)——表示参数1到参数2区间内的整数,前闭后开
  3. range(参数1,参数2,step)------表示参数1到参数2区间内的整数,step为步长(即两个数之间的间隔,比如1到10,step为2,则打印出来就是1,3,5,7,9),默认为1,(当step为-1时可倒序打印),前闭后开
    举例说明:计算0~100以内所有偶数和
sum = 0  
for i in range(0,101,2):  #从0开始,步长为2,遍历到101是为了包含100在内
	sum += i 
print("0~100内偶数和是:",sum)

输出结果
在这里插入图片描述

打印等腰三角形(其实是属于找规律类型,行数,空格数,*数,逐级循环),每行先计算空格数在计算 * 的数量

*的数量 行数 空格数 *
* 1 3 1
*** 2 2 3
***** 3 1 5
********* 4 0 7
layer = int(input("请输入你要打印的行数:")) 
for i in range(1,layer+1): #因为是前闭后开,所以要+1
	#计算空格的个数 
	space= layer - i 
	for j in range(0,space): 
		print(" ",end="") 
	#计算*个数 
	star = 2*i-1 
	for j in range(0,star): 
		print("*",end="") 
	print("")

输出结果
Python基础——循环语句_第1张图片

三,练习题

1.Python基础——循环语句_第2张图片

import random
print("猜一猜电脑里存储的数字(0-100)")
num = int(input("请输入你猜的数字:"))
pcnum = random.randrange(1,100)
print(pcnum)
while num < pcnum:
 	print("你猜的数过小")
 	num = int(input("请重新输入:"))
while num > pcnum:
 	print("你猜的数过大")
 	num = int(input("请重新输入:"))
if pcnum == num:
 	print("你猜对了")

Python基础——循环语句_第3张图片

n1,n2 = map(int,input("请输入两个整数:").split())
if n1 > n2:    #min 可以比较两个数中小的数
	num = n2
else:
	num = n1
for i in range(1,num+1):
	if n1 % i == 0 and n2 % i == 0: 
		gcd = i
print("它们的最大公约数为%s" %gcd)

Python基础——循环语句_第4张图片

import random
num = 0
for i in range(0,1000000):
	x = random.uniform(-1,1)   #random()------产生的0-1之间的数
	y = random.uniform(-1,1)
	if (x**2+y**2)**0.5 <= 1:
		num += 1
	else:
		num += 0
pai = 4*num/1000000
print("pai的值是:"+str(pai))

Python基础——循环语句_第5张图片

num = 0
j = 0
n = 0
sum = 0
average = 0
for i in range(0,100):
	num = int(input("请输入一个整数(输入0结束输入):"))
	if num == 0:
		break
	while num > 0:
		j += 1
		break
	while num < 0:
		n += 1
		break
	sum += num
average = sum / i
print("\n这些数字中有%s个正数" %j)
print("这些数字中有%s个负数" %n)
print("他们的和为:%s" %sum)
print("平均值为:%.2f" %average)

在这里插入图片描述

num = int(input("请输入一个整数:"))
while num != 1:
	flag = True  #循环是否正常
	for i in range(2,num // 2+1):
		if num % i == 0:
			print(i,end=", ")
			num = num // i
			flag = False
			break
	if flag:
		print(num,end="")
		break

Python基础——循环语句_第6张图片

num = int(input("请输入一个数(1-15):"))
for i in range(1,num+1):  
	for j in range(0,num - i):  #计算空格的个数
		print(" ",end=" ")  
	for j in range(i,0,-1):   #计算数字的个数
		print(j,end=" ")    
	for j in range(2,i+1):    #计算右边循环的数字
		print(j,end=" ")
	print()

Python基础——循环语句_第7张图片

A
num = int(input("请输入行数:"))
for i in range(1,num+1):
	num_num = i+1     #计算每行数字的个数
	for j in range(1,num_num):
		print(j,end=" ")
	print()
B
num = int(input("请输入行数:"))
for i in range(num+1,1,-1):
	num_num = i     #计算每行数字的个数
	for j in range(1,num_num):
		print(j,end=" ")
	print()
C
num = int(input("请输入行数:"))
for i in range(1,num+1):
	space_num = num - i  #计算空格的个数
	for j in range(0,space_num):
		print(" ",end=" ")
	num_num = i          #计算数字的个数
	for j in range(num_num,0,-1):
		print(j,end=" ")
	print()
D
num = int(input("请输入行数:"))
for i in range(1,num+1):
	space_num = i-1       #计算空格的个数
	for j in range(0,space_num):
		print(" ",end=" ")
	num_num = num+1-i        #计算数字的个数
	for j in range(1,num_num+1):
		print(j,end=" ")
	print()

Python基础——循环语句_第8张图片

num = int(input("请输入行数:"))
for i in range(1,num+1):
	space_num = num-i       #计算空格的个数
	for j in range(0,space_num):
		print(" ",end=" ")
	num_num = i             #计算数字的个数
	for j in range(0,num_num):
		num_power = j       #计算2的n-1次方
		print(2**num_power,end=" ")
	num_agan = i+1         #计算右边循环的数字
	for j in range(num_agan,2,-1):
		num_power = j-3       #计算2的n-1次方
		print(2**num_power,end=" ")
	print()

在这里插入图片描述

num = int(input("请输入10000,20000,......,100000其中一个:"))
pai = 0
for i in range(0,num):
	i += 1
	a = 4 * ((-1)**(i+1) / (2*i-1))
	pai += a         #求i等于输入数值时的和
print(pai)

Python基础——循环语句_第9张图片

num = int(input("请输入10000,20000,......,100000其中一个:"))
item = 1
e = 1
for i in range(0,num):
	i += 1
	for j in range(0,i):
		j += 1
		item *= j
	a = 1 / item
	e += a
print(e) 

Python基础——循环语句_第10张图片

num_num = int(input("输入数据的个数:\n"))
a = 1
while a <= num_num:
  num = int(input('请输入第{}个数:'.format(a))) #字符串中的方法
  if a == 1:       #这句一定会执行,而且只执行一次,目的就是让你输入的第一个数作为根据与之后的数比较
    max = min = num   #第二个及以后的数都会走else,
 
  else:          #第一次走else时,比较中的min和max都是你第一次输入的数,以后走else就不一定了
    if num < min:
      min = num
    elif num > max:
      max = num
  a += 1
print('最大数据是:', max)

以上题目的代码非最优代码,可根据自己理解加以改进,如有错误敬请指正!感谢!

你可能感兴趣的:(Python,python)