Python学习(3)基础

Python基础学习

时间2020-2-6

1、循环语句

  1. For循环:
    (1)、单层循环
   for 变量 in range(起始【可以没有】,结束值【取不到】,步长):
   	(前面四个空格或者一个tab)循环内容
for i in range(10):
    print(i, end='')
#0123456789

for i in range(0,10):
    print(i) 
#0123456789

for i in range(0,10,1):
    print(i) 
#0123456789

注: end=’'的作用是使循环不换行
细节点: range()有默认的起始值0,range()属于左闭右开(即左边的值取得到,右边的值取不到),步长可以为负
例如:
range(1,11)的范围是1-10;

for i in range(1,11):
    print(i, ' ', end='')
#1  2  3  4  5  6  7  8  9  10  

range(1,10)的范围是1-9

for i in range(1,11):
    print(i, ' ', end='')
#1  2  3  4  5  6  7  8  9 

步长为负时可以理解为:循环体=变量-步长
例如:

for i in range(11, 1, -1):
    print(i, ' ', end='')
#11  10  9  8  7  6  5  4  3  2

(2)、嵌套循环
简单理解就是两个for循环套在一起

'''
打印9*9乘法表
'''
for i in range(9):  # 行
    for j in range(i + 1):  # 列
        print((j + 1), '*', (i + 1), '=', (i + 1) * (j + 1), "     ", end='')
    print()

结果图:
在这里插入图片描述

'''
打印下面的图案
*
**
***
****
'''
for i in range(4):  # 行
    for j in range(i + 1):  # 列(由行数决定最大不超过行数)
        print('*', end='')  # 每一列的*上一行的*多一个
    print()
    
#或者:
for i in range(1,5):
    print(i*'*')

结果图:
在这里插入图片描述

'''
打印下面的图案
   *
  ***
 *****
*******
'''
for i in range(1,5):
    print(' '*(5-(i-1))+'*'*(2*i-1))

结果图:
在这里插入图片描述
解释图:
在这里插入图片描述

'''
打印下面的图案
*******
 *****
  ***
   *
'''
for i in range(7):
    print(' '*i+(7-2*i)*'*')

结果图:
在这里插入图片描述
解释图:
在这里插入图片描述

'''
打印下面的图案
   *
  ***
 *****
*******
 *****
  ***
   *
'''

方法1
第一行打印一个,让他在7个字符中居中

第二行打印3个,居中

第三行打印5个,居中

第四行打印7个,居中

然后倒序:

5个 3个 1个 分别居中就好了

for i in range(1, 8, 2):
    print(('*' * i).center(7))
for i in reversed(range(1, 6, 2)):
    print(('*' * i).center(7))

来自:https://blog.csdn.net/sinat_38068807/article/details/88562501

'''
打印下面的图案
    *
   * *
  *   *
 *     *
  *   *
   * *
    *
绝对值
'''
a = int(input("请输入菱形每条边星星的个数:"))
b = a
c = a
print(" " * (a - 1), "*")
for i in range(2, a+1):  # 先打印正三角,由空格和*根据规律组成
    print(" " * (b - 1) + "*" + " " * (2 * i - 3) + "*")
    b -= 1
    if i == a:  # 临界点,当打印到此,开始打印倒三角
        for y in range(2, a):
            print(" " * y+"*"+" "*(2*c-5)+ "*" )
            c -= 1
        print(" "*a+"*")

来自:https://blog.csdn.net/qq_38923792/article/details/88959146

2.while循环:

起始
While 终止表达式:
	循环体
	步长

猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个,
第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃前一天剩下的一半零一个。
到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘多少个桃子?

分析:
假设a1为一开始个数
第一天a2=a10.5-1
第二天a3=a2
0.5-1

第九天a10=a9*0.5-1
第十天为1即a10=1

反过来
a9 = (a10+1)*2 即 ( 1 + 1 ) * 2 = 4
a8 = (a9+1)*2 即 ( 4 + 1 ) * 2 = 10

sum = 1  # 第十天个数
for i in range(9, 0, -1):  # 从第九天到第一天,第十天的值是确定的
    sum = (sum + 1) * 2
print(sum)

注:while循环中range()规则与for循环中一样

Python中没有switch case的循环方法


  1. python打印菱形三种方法 ↩︎

发布了7 篇原创文章 · 获赞 1 · 访问量 365

猜你喜欢

转载自blog.csdn.net/weixin_43464797/article/details/104214692