Python逻辑结构

对象的布尔值

Python一切皆对象,所有对象都有一个布尔值,可以通过bool()函数获取布尔值
在这里插入图片描述

print(bool(False))
print(bool(''))			#空字符串
print(bool(None))
print(bool(0))
print(bool(list()))		#空列表
print(bool([]))			#空列表
print(bool({}))        	#空字典
print(bool(dict()))     #空字典
print(bool(tuple()))    #空元组
print(bool(set()))		#空集合 
# 以上输出皆为False

例如:

age=int(input(‘输入年龄’))
if age:
	print(age)
else
	print('输入有错')	

此处输入有错的情况即为:age=0时,age的bool值为False,不进入if情况,进入else情况

选择结构

  1. 与C不同的是,if和else后面用冒号 : 且没有大括号,而是用缩进表明结构
if 条件:
	aaaaa
else:
	2222

银行取款例子:

money=1000;
s=int(input('输入取款金额,不足则退出   '))        #切记此处input为str,要用int转换
if money>=s:
    money=money-s;
    print('取款结束,余额为:',money)
else:
    print('余额不足')
  1. 同样可以使用类似C的三目运算符进行判断

语法结构:x if 判断条件 else y,如果判断为真运行x部分,否则运行y部分

输入两个数字

numa=int(input())			#注意转换为int
numb=int(input())
print(str(numa)+'大于等于'+str(numb) if numa>=numb else str(numa)+'小于'+str(numb))

由于最后输出为str,所以除了条件部分“numa>=numb”,剩下的部分转换为str类型并用+把字符串连接起来

多分支结构

if 条件1:
	11111
elif 条件2:
	222222
elif 条件3:
	333333
else:
	444444

成绩分级练习

score=int(input('输入成绩判断评级:  '))
if score>=85 and score<=100:
    print(' A')
elif  60<=score<85:				#另一种条件书写形式
    print(' B')
else:
    print(' C')

pass语句

不进行操作,占位符,用在需要语句但是没想好的地方。使程序不报错

if a>=0:
	pass
else
	pass

pass部分操作未定,占据位置使其不报错,其他地方正常运行

内置函数range()

优点:无论对象的序列多长,只用存储三个元素“start”“stop”和“step”,节约空间类似是个图纸,并没有实质序列

基本range

生成一个整数序列,默认从0开始,到9,不包括10,步长为1

a=range(10) 
print(list(a))      #输出序列的每个数字,使用list()包裹变量

不能直接print(a)
在这里插入图片描述

确定range首尾

起始值是1,终点是10,步长默认1

b=range(1,10)
print(list(b))

在这里插入图片描述

range定首尾及步长

步长为2,及后一个减前一个=2

c=range(1,10,2)
print(list(c))

在这里插入图片描述

判断某个数字是否在序列中:
直接用数字 in 序列,不需要转换成str

print(10 in c)		#False

while

和C基本一样
复习一下:判断次数N+1,执行次数N。因为最后一次判断不满足时不执行

例: 求0~5之和

a=0
sum=0
while a<5:
    a+=1
    sum+=a
print(sum)
  • 例:求0~100偶数和
sum=0
a=0
while a<=100:
    if a%2==0:			#若a取余为0(偶数)则加a
        sum+=a
    a+=1
print(sum)

或者用bool

sum=0
a=0
while a<=100:
    if not bool(a%2):		#若a取余为0(偶数)获取bool值为0,再取反为1
        sum+=a
    a+=1
print(sum)
  • 例:求0~100奇数和
sum=0
a=0
while a<=100:
    if a%2:				#若a取余为1(奇数)则加a
        sum+=a
    a+=1
print(sum)

for-in

  • in表示从字符串、序列等依次取值,也就是遍历
  • for-in遍历对象必须是可迭代对象
for  变量  in  迭代对象 :
	循环体
  • 例如:输出字符串中各个字母
for word in 'abc':
    print(word)				#依次输出:a,b,c

for i in range(5):
	print(i)				#依次输出:0,1,2,3,4

即可实现自动获取递增值,

在这里插入图片描述

  • 也可以不用变量接收
    但是因为字符串三个字母,所以循环进行三次
for _ in 'asd':
     print('滴滴答滴答')

在这里插入图片描述

循环中的else


这是直接面对for循环的else,没有通过break结束,就运行else,可以没有对应的if

Python中:后面的else与for循环是同一层级,若循环非正常结束(即没有运行break语句)则需要运行else。

keyword ='123456'
i=0
for i in range(3):        #进行三次循环在range(3)中
   s=input('输入密码  ')
   if s==keyword:
       print('right')
       break
   else:
       print('try again')
else:
   print('you have no chance')

循环打印三角形

print(end='')是使print不换行的函数。

Python中的print函数默认输出一次且换行
也可以在' '中添加结尾内容,例如'\t'

  • for搭配while
for i in range(4):
    j=0
    while j<=i:
        print('*',end=''+'\t' )			#end=''  抑制换行功能。字符串与字符串连接用+
        j+=1
    print('')						#什么也不输出,借助print函数自带换行功能进行换行

在这里插入图片描述

  • 循环的另一种写法

通过外部i的变化,决定内部range(1,i+1),使内部for循环长度不断增加

for i in range(4):
    for j in range(1,i+1):
        print('*',end=''+'\t' )
    print('')
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值