循环结构
- range函数:python range() 函数可创建一个整数列表,一般用在 for 循环中。
- range(start, stop[, step])
- start: 计数从 start 开始。默认是从 0 开始。例如range(5)等价于range(0, 5);
- stop: 计数到 stop 结束,但不包括 stop。例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5
- step:步长,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1)
- len函数:len(object),主要是获取对象的长度
- for循环:Python for循环可以遍历任何序列的项目,如一个列表或者一个字符串。
语法格式:
for iterating_var in sequence:
statements(s) - while循环:while循环通过一个能够产生或转换出bool值的表达式来控制循环,表达式的值为True则继续循环;表达式的值为False则结束循环。
- end=’\t:可以阻止换行
- print():换行等同于print(end=’\n’)
"""
循环结构
"""
import random
"""
计算从1到100的求和
sum=0
for x in range(101):
sum += x
print(sum)
"""
"""
1到100之间的偶数求和
sum=0
for x in range(100,0,-2):
sum+=x
print(sum)
第二种实现方式
sum=0
for x in range(2,101,2):
sum+=x
print(sum)
"""
"""
使用len函数来输出字符串中的每个字符
shuzu='test'
for i in range(len(shuzu)):
x=(shuzu[i])
print(x)
"""
"""
猜数字游戏
猜数字游戏的规则是:计算机出一个1到100之间的随机数,玩家输入自己猜的数字,计算机给出对应的提示信息(大一点、小一点或猜对了),如果玩家猜中了数字,计算机提示用户一共猜了多少次,游戏结束,否则游戏继续。
代码实现如下:
i=1
a=random.randint(1,100)
#print(a),如果不想猜,可以取消注释
print('请输入猜测数字x:')
x=int(input('x='))
while x!=a:
if x>a:
print('小一点')
else:
print('大一点')
i+=1
x = int(input('x='))
print('恭喜你,猜对了')
print('随机数的值为%f'%a)
print('你总共猜了%f次'%i)
"""
"""
输出乘法口诀表
for x in range(1,10):
for y in range(1,x+1):
print('%d*%d=%d'%(x,y,x*y),end='\t')
print(end='\n')
"""
"""
输入一个正整数判断是不是素数。
素数指的是只能被1和自身整除的大于1的整数。
z=0
print('请输入正整数x:')
x=int(input('x='))
for i in range (2,x):#把范围取到不包含1和本身
y=x%i
i+=1
while y==0:#如果可以取到能整除的,则证明不是素数,基于时间复杂度来规划,不判断哪几个数是可以整除的,只判断是不是素数
z=1
break
if z==1:
print('%d不是素数'%x)
else:
print('%d是素数'%x)
"""
"""
输入两个正整数,计算它们的最大公约数和最小公倍数。
两个数的最大公约数是两个数的公共因子中最大的那个数;两个数的最小公倍数则是能够同时被两个数整除的最小的那个数。
z=0
max_yin=1
x=int(input('x='))
y=int(input('y='))
if x>y:
x,y=y,x
for i in range(2,y+1):
while y%i==0 and x%i==0:
y=y/i
x = x/ i
max_yin *= i
min_bei1=y%i
min_bei2=x%i
min_bei=max_yin*min_bei1*min_bei2
print('最大公因数为%d'%max_yin)
print('最小公倍数为%d'%min_bei)
第二种解法
x = int(input('x = '))
y = int(input('y = '))
# 如果x大于y就交换x和y的值
if x > y:
# 通过下面的操作将y的值赋给x, 将x的值赋给y
x, y = y, x
# 从两个数中较小的数开始做递减的循环
for factor in range(x, 0, -1):
if x % factor == 0 and y % factor == 0:
print('%d和%d的最大公约数是%d' % (x, y, factor))
print('%d和%d的最小公倍数是%d' % (x, y, x * y // factor))
break
"""
"""
练习3:打印如下所示的三角形图案。
*
**
***
****
*****
*
**
***
****
*****
*
***
*****
*******
*********
"""
print('请输入行数row:')
row=int(input('row='))
for x in range(1,row+1):
for y in range(1,x+1):
print('*',end='')
print()
for i in range(row):
for j in range(row):
if j < row - i - 1:
print(' ', end='')
else:
print('*', end='')
print()
for i in range(row):
for _ in range(row - i - 1):
print(' ', end='')
for _ in range(2 * i + 1):
print('*', end='')
print()