Python基础学习笔记2

一、程序的描述方式和组织结构

描述方式:

  • 自然语言
  • 流程图
  • 伪代码

组织结构:

  • 顺序结构
  • 选择结构
  • 循环结构

1.顺序结构

顺序结构

2.选择结构

2.1if语句

冒号、缩进不可缺

  • 简单的if语句
number=eval(input('请输入您的6位中将号码:'))
#使用if语句
if number==987654:
	print('恭喜您中奖了')
if number!=987654:
	print('您未中本期大奖')
	
n=98
if n%2:
	print('n为奇数')
if not n%2:
	print('n为偶数')
  • if…else…else语句
    语法结构:
if 表达式1:
	语句块1
elif 表达式2:
	语句块2
...
elif 表达式n:
	语句块n
else:
	语句块n+1
  • 嵌套if语句
    语法结构:
if 表达式1:
	if 表达式2:
		语句块1
	else:
		语句块2
else:
	if 表达式3:
		语句块3
	else:
		表达式4

2.2.and_or连接多个选择条件

user_name=input('请输入您的用户名')
pwd=input('请输入您的密码')
if user_name=='fc' and pwd=='888':
	print('登陆成功')
else:
	print('用户名或密码不正确')
	

3.循环结构

3.1.遍历循环for

语法结构:

for 循环变量 in 遍历对象:
	语句块1
else:
	语句块2
#else语句只在循环正常结束后才执行
#通常与break和continue语句一起使用	

遍历对象:

  • 字符串
  • 文件
  • 组合数据类型
  • range()函数等
#遍历字符串
for i in'hello':
	print(i)
#range()函数,产生一个[n,m)的整数序列
#水仙花数:3*3*3+5*5*5+1*1*1=153
for i in range(100,1000):
	sd=i%10#取个位上的数字
	ten=i//10%10#取十位上的数字
	hundred=i//100#取百位上的数字
	if sd**3+ten**3+hundred**3==i:
		print(i)

3.2.无限循环while

语法结构:

while 表达式:
	语句块1
else: 
	语句块2
#else语句只在循环正常结束后才执行
#通常与break和continue语句一起使用	
#使用无限循环模拟实现登录
i=0#统计循环执行的次数
while i<3:
	user_name=input('请输入您的用户名:')
	pwd=input('请输入您的密码:')
	#判断
	if user_name=='fc' and pwd=='888':
		print('系统正在登录,请稍后')
		#改变循环条件,退出循环
		i=8
	else:
		if i<2:
			print('用户名或密码不正确,您还有',2-i,'次机会')
		i+=1#改变循环变量
if i==3:
	print('对不起,三次均输入错误')

3.3.嵌套循环

#输出长方形
for i in range(3,4):
	for j in range(1,5):
		print('*',end='')
	print()#换行

#输出直角三角形
for i in range(1,6):
	for j in range(1,i+1):
		print('*',end='')
	print()#换行

#输出倒直角三角形
for i in range(1,6):
	for j in range(1,7-i):
		print('*',end='')
	print()#换行

#输出等腰三角形
for i in range(1,6):
	for j in range(1,6-i):
		print(' ',end='')
	for k in range(1,i*2):
		print('*',end='')
	print()

#输出菱形
row=eval(input('请输入菱形的行数'))
top_row=(row+1)//2
#上半部分
for i in range(1,top_row):
	for j in range(1,top_row+1-i):
		print(' ',end='')
	for k in range(1,i*2):
		print('*',end='')
	print()
#下半部分
bottom_row=row//2
for i in range(1,bottom_row+1):
	#直角三角形
	for j in range(1,i+1):
		print(' ',end='')
	#倒三角形
	for k in range(1,2*bottom_row-2*i+2):
		print('*',end='')
	print()

#空心菱形
row=eval(input('请输入菱形的行数'))
while row%2==0:
	print('重新输入菱形的行数')
	row=eval(input('请输入菱形的行数'))
top_row=(row+1)//2
#上半部分
for i in range(1,top_row):
	for j in range(1,top_row+1-i):
		print(' ',end='')
	for k in range(1,i*2):
		if k==1 or k==i*2-1:
			print('*',end='')
		else:
			print(' ',end='')
	print()
#下半部分
bottom_row=row//2
for i in range(1,bottom_row+1):
	#直角三角形
	for j in range(1,i+1):
		print(' ',end='')
	#倒三角形
	for k in range(1,2*bottom_row-2*i+2):
		if k==1 or k==2*bottom_row-2*i+2-1:
			print('*',end='')
		else:
			print(' ',end='')
	print()

3.4.程序跳转语句

  1. break
    只能在循环语句中使用
    只控制本层循环
    结束整个循环
    break
s=0#存储累加和
i=1
while i<11:
	s+=i#计算累加
	if s>20:
		print('累加和大于20的当钱数',i)
		break
	i+=1

i=0#统计循环执行的次数
while i<3:
	user_name=input('请输入您的用户名:')
	pwd=input('请输入您的密码:')
	#判断
	if user_name=='fc' and pwd=='888':
		print('系统正在登录,请稍后')
		break
	else:
		if i<2:
			print('用户名或密码不正确,您还有',2-i,'次机会')
		i+=1#改变循环变量
else:
	print('对不起,三次均输入错误')
  1. continue
    结束本次循环
    continue
s=0
i=1
while i<=100:
	if i%2==1:
		i+=1
		continue
	#累加求和的代码
	s+=i
	i+=1
print('1-100之间的偶数和:',s)

  1. 空语句pass
  • 不做任何事,只起到占位符的作用,使得语法结构完整,不报错
  • 一般可用在if、for、while、函数的定义、类的定义中

二、实战——判断闰年

year=eval(input('请输入一个四位的年份:'))
if(year%4==0 and year%100!=0) or (year%400==0):
    print(year,'年是闰年')
else:
    print(year,'年是平年')

三、实战——模拟10086查询功能

#1初始化变量
answer='y'
#2条件判断
while answer=='y':
    print('--------欢迎使用10086的查询功能--------')
    print('1.查询当前余额')
    print('2.查询剩余流量')
    print('3.查询当前剩余的通话时长')
    print('0.退出系统')
    choice=input('请输入您要执行的操作:')
    if choice=='1':
        print('当前余额为:234.5元')
    elif choice=='2':
        print('当前剩余流量为4GB')
    elif choice=='3':
        print('当前剩余通话时长为300分钟')
    elif choice=='0':
        print('程序退出,谢谢您的使用')
        break
    else:
        print('对不起,您的输入有误,请重新输入')
    #3改变变量
    answer=input('还继续操作吗?y/n')

else:
    print('程序退出,谢谢您的使用')

四、实战——九九乘法表

for i in range(1,10):
    for j in range(1,i+1):
        print(str(j)+'*'+str(i)+'='+str(i*j), end='\t')
    print()

五、实战——猜数游戏

import  random
rand=random.randint(1,100)
count=1#记录猜的次数
while count<=10:
    number=eval(input('在我心中有个数,1-100之间,请你猜一猜:'))
    if number==rand:
        print('猜对了')
        break
    elif number>rand:
        print('大了')
    elif number<rand:
        print('小了')
    count+=1


if count<=3:
    print('真聪明,一共猜了',count,'次')
elif count<=6:
    print('还不错,一共猜了',count,'次')
else:
    print('猜的次数有点多,一共猜了', count, '次')

六、绘制程序流程图

  • 用一系列图形、流程线和文字说明描述程序的基本操作和控制流程,它是程序分析和过程描述的最基本方式
  • 流程图的七种基本元素
    程序流程图
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值