循环结构

  1. 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)
  1. len函数:len(object),主要是获取对象的长度
  2. for循环:Python for循环可以遍历任何序列的项目,如一个列表或者一个字符串。
    语法格式
    for iterating_var in sequence:
    statements(s)
  3. while循环:while循环通过一个能够产生或转换出bool值的表达式来控制循环,表达式的值为True则继续循环;表达式的值为False则结束循环。
  4. end=’\t:可以阻止换行
  5. 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()