Python基础学习
时间2020-2-6
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=a20.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的循环方法