5.6 自我总结

一.流程控制while

1.while

while True:                 #while + 条件满足进行下面的循环
age = input('age:') #while 循环的内容

2.while...break

while True:                 #while + 条件满足进行下面的循环
age = input('age:') #while 循环的内容
break #停止本次循环

补充

a = True		#循环语是子上而下的,当While中条件不满足时也会停止while下面内容的循环
while a == True:
age = input('age:')
if type(age) == type('1'):
a = False

3.while...continue

num = 0
num_time = 3
while num <num_time: ←--- |
num +=1 |
if num == 1: |
continue--------- #相当于如果NUM的值等于1时候不进行下面的运算,但是不跳出While,返回while print(num)

4.while...else

n = 1
while n < 3:
print(n)
n += 1
else:
print('else会在while没有被break时才会执行else中的代码')

5.while的嵌套

例如


while True:
user_db = 'nick'
pwd_db = '123' inp_user = input('username: ')
inp_pwd = input('password: ') if inp_user == user_db and pwd_db == inp_pwd:
print('login successful') while True:
cmd = input('请输入你需要的命令:')
if cmd == 'q':
break
print(f'{cmd} 功能执行')
else:
print('username or password error') print('退出了while循环')

二.流程控制for(和while用法差不多)

1.for

2.for...break

3.for...continue

4.for...else

5.for的嵌套

三.for与while的区别

for和while条件者快一个是可控的一个是不可控的,while容易出现死循环

四.今日题目

1. 打印1-100之间的偶数:

```python
for num in range(100):
num += 1
if num % 2 == 1:
continue
print(num)
```

2.猜年龄游戏升级版,有以下三点要求

  1. 允许用户最多尝试3次

  2. 每尝试3次后,如果还没猜对,就问用户是否还想继续玩,如果回答Y或y, 就继续让其猜3次,以此往复,如果回答N或n,就退出程序

  3. 如何猜对了,就直接退出

     ```python
    #允许最多输入三次年龄
    #三次没有猜对让用户输入Yory表示继续,Norn表示退出
    #猜对直接退出
    time = 0
    ipt_time = 3 while time < ipt_time+1:
    age =input('请输入您的年龄:')
    age =int(age)
    if age ==18:
    print('恭喜你猜对了')
    break
    elif age < 18:
    print('小了,请再试试')
    else:
    print('大了,请再试试')
    time += 1
    if time == 3:
    print('你想不想再玩')
    choose = input(f'(输入Y或y继续玩,输入N或n不想玩退出)')
    if choose =='Y'or choose == 'y':
    time = 0
    elif choose == 'N' or choose == 'n':
    time = 4
    else:
    print('不听话乱输入\n请好好输入') ```

3.99乘法表

1*1=1
2*1=2 2*2=4
3*1=3 3*2=6 3*3=9
4*1=4 4*2=8 4*3=12 4*4=16
5*1=5 5*2=10 5*3=15 5*4=20 5*5=25
6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36
7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49
8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64
9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81
#第一种
for row_1 in range(1):
print(f'1*{row_1+1}')
for row_2 in range(2):
print(f'2*{row_2+1} ',end='')
for row_3 in range(3):
if row_3 == 0:
print(end='\n'f'3*{row_3+1} ')
continue
print(f'3*{row_3+1} ',end='')
for row_4 in range(4):
if row_4 == 0:
print(end='\n'f'4*{row_4+1} ')
continue
print(f'4*{row_4+1} ',end='')
for row_5 in range(5):
if row_5 == 0:
print(end='\n'f'5*{row_5+1} ')
continue
print(f'5*{row_5+1} ',end='')
for row_6 in range(6):
if row_6 == 0:
print(end='\n'f'6*{row_6+1} ')
continue
print(f'6*{row_6+1} ',end='')
for row_7 in range(7):
if row_7 == 0:
print(end='\n'f'7*{row_7+1} ')
continue
print(f'7*{row_7+1} ',end='')
for row_8 in range(8):
if row_8 == 0:
print(end='\n'f'8*{row_8+1} ')
continue
print(f'8*{row_8+1} ',end='')
for row_9 in range(9):
if row_9 == 0:
print(end='\n'f'9*{row_9+1} ')
continue
print(f'9*{row_9 + 1} ', end='')
#第二种改进
for num_former in range(1,10):
for num_latter in range (1,num_former+1):
if num_former ==num_latter:
print(f'{num_former}*{num_latter} ')
continue
print(f'{num_former}*{num_latter} ',end='')
#居然漏了下面结果(一直在想优化了)
for num_former in range(1,10):
for num_latter in range (1,num_former+1):
if num_former ==num_latter:
print(f'{num_former}*{num_latter}={num_former*num_latter} ')
continue
print(f'{num_former}*{num_latter}={num_former*num_latter} ',end='')

4.打印如下所示金字塔

             # max_level=5
* # current_level=1,空格数=4,*号数=1 1
*** # current_level=2,空格数=3,*号数=3 3
***** # current_level=3,空格数=2,*号数=5 5
******* # current_level=4,空格数=1,*号数=7
********* # current_level=5,空格数=0,*号数=9 # 数学表达式
空格数 = max_level-current_level
*号数 = 2*current_level-1
'''
#方法1
print(f' *')
print(f' ***')
print(f' *****')
print(f' *******')
print(f'*********')
#方法二
for row_1 in range(6):
if row_1 == 0:
print(' ')
elif row_1 == 1:
print(f' *')
elif row_1 == 2:
print(f' ***')
elif row_1 == 3:
print(f' *****')
elif row_1 == 4:
print(f' *******')
elif row_1 == 5:
print(f'*********')
#方法三
# max_level=5
* # current_level=1,空格数=4,*号数=1 1 = 0+1
*** # current_level=2,空格数=3,*号数=3 3 = 1+2
***** # current_level=3,空格数=2,*号数=5 5 = 2+3
******* # current_level=4,空格数=1,*号数=7 7 = 3+4
********* # current_level=5,空格数=0,*号数=9 9 = 4+5
for row in range(6):
A = (5-row)*' '
B = (2*row+1)*'*'
print(f"{A}{B}")
#再精简
for row in range(6):
print((5-row)*' '+(2*row+1)*'*')
#漏了开头一行,
print('')
for row in range(6):
print((5-row)*' '+(2*row+1)*'*')
#或者
for row in range(7):
if row == 0:
print('')
continue
print((5-(row-1))*' '+(2*(row-1)+1)*'*')

流程控制主while,for,python画金字塔,画9*9乘法表的更多相关文章

  1. python以不同方式打印输出九九乘法表

    参考:http://www.cnblogs.com/suiy-160428/p/5594389.htmlpython输出 9*9 乘法口诀表 矩形输出九九乘法表: for i in range(1,1 ...

  2. Python练习题 006:输出九九乘法表

    [Python练习题 006] 输出九九乘法表 --------------------------------------------------- 照理这题不难,逻辑关系弄对了就好办,但数学渣的我 ...

  3. 格式化输出,基本运算符,流程控制主if

    5.5自我总结 一.格式化输出 1.占位符 a = 1 b = 2 print('%S %s'%(a,b)) #1 2 print('%s %s'%(1,2)) #1 2 2.format格式化 a ...

  4. 【转】Python实现不同格式打印九九乘法表

    前言:最近在学习Python,学习资源有慕课网上的视频教程.菜鸟教程以及Python官方文档tutorial.虽然了解了Python的基本语法,但是还没有真正意义上输出自己写的代码.代码小白,之前仅学 ...

  5. Python实现不同格式打印九九乘法表

    前言:最近在学习Python,学习资源有慕课网上的视频教程.菜鸟教程以及Python官方文档tutorial.虽然了解了Python的基本语法,但是还没有真正意义上输出自己写的代码.代码小白,之前仅学 ...

  6. Python练习——矩形、直角三角形、乘法表

    一.矩形 #******输入行和列,打印相应的矩形******# width = input("宽:") longth = input("长:") if (wi ...

  7. python实现格式化输出9*9乘法表

    # python 9*9 乘法表 for i in range(1,10): for j in range(1,i+1): print("%s*%s=%s"%(i,j,i*j),e ...

  8. 使用python列表推导式进行99乘法表

    首先这很python for i in range(1, 10): print(" ".join(["%d*%d=%d" % (j, i, i*j) for j ...

  9. Python,for循环小例子--99乘法表

    一.99乘法表 for i in range(1, 10): for j in range(1, i + 1): print('%sx%s=%s ' % (j, i, j * i), end='') ...

随机推荐

  1. Git,SVN的优缺点及适合的范围,开源项目?公司项目?

    Git,SVN的优缺点及适合的范围,开源项目?公司项目? 使用git不久,粗浅理解: 1)适用对象不同.Git适用于参与开源项目的开发者.他们由于水平高,更在乎的是效率而不是易用性.Svn则不同,它适 ...

  2. Codeforces 1132E(转化+dp)

    要点 假设第i个最后总共选的值为ci,不妨把它分成两部分:\[c_i=cnt'_i*L+q_i\]\[L=840,\ 0<=q_i<L\]又可以写成:\[c_i=cnt_1*i+cnt_2 ...

  3. python入门之正则表达式

    正则 通过re模块实现 eg:>>>import re        >>>re.findall('abc',str_name) 在strname里面完全匹配字符串 ...

  4. 51nod 1640 天气晴朗的魔法 二分 + 克鲁斯卡算法(kruskal算法) 做复杂了

    http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1640 一开始想的时候,看到要使得最大值最小,那这样肯定是二分这个最大值了 ...

  5. na 残

    题目描述: 对于斐波那锲数列f(0)=0,f(1)=1,....求f(f(n)的值 0<=n<=10^100 给出T组数据,每行一个n 输出n行 f(f(n)) 样例输入: 4 0 1 2 ...

  6. 在ASP.NET中,后台代码向页面写HTML代码

    Literal lt = new Literal();lt.Text = "<a href=\"http://www.czbin.cn\">czbin的博客& ...

  7. (wp8.1开发)添加数据(SQLite)库到app

    wp8.1只支持SQLite. 如何添加SQLite支持请看这里 我这里要说的是如何添加自己的数据库 1.添加数据库到项目中 2.右击选择属性 3.将生成操作改成内容 4.直接就可以引用数据库文件了

  8. ssm(Spring、Springmvc、Mybatis)实战之淘淘商城-第七天(非原创)

    文章大纲 一.课程介绍二.Redis基础实战三.Redis之高可用.集群.云平台搭建实战四.淘淘商城Jedis整合spring五.项目源码与资料下载六.参考文章   一.课程介绍 一共14天课程(1) ...

  9. js将数字转换为带有单位的中文表示

    好不容易找到了, 实测可行, 记录一下.  到时候调用方法   addChineseUnit ,  其他两个方法在addChineseUnit中有调用 /** * 为数字加上单位:万或亿 * * 例如 ...

  10. AJPFX关于Collection接口的总结

    ###15Collection-List-ArrayList/LinkedList/*  * Collection接口中的方法* A:添加功能*                 boolean add ...