Python选择结构与循环结构及应用(第四章)

1. 条件表达式

1. python中条件表达式的值只要不 False、0(0.0,0j等)、空值None、空列表、空元组、空集合、空字典、空字符串、空range对象或其他空迭代对象,Python解释器均认为True等价

例:

>>> if 666:
    print(True)
     
True
>>> #使用整数作为条件表达式
>>> a=[1,2,3]
>>> if a:
    print(a)

[1, 2, 3]
>>> #使用列表作为条件表达式
>>> a=[]
>>> if a:
    print(a)
else:
    print('empty')
     
empty
>>>  

注:Python中boolean类型的False与True,首字母大写

2. Pyhton中的赋值语句

>>> a,b,c=1,2,3          
>>> print(a,b,c)      
1 2 3
>>>

3.赋值语句的拓展

>>> x=input('输入一个字符串:')    
>>> a,b=map(int,s.split())

注:x是接收的一个字符串,map(类型,split(分隔符)),如果定义好的类型,接收的值必须是同类型的值,否则会报错(这里必须接收的是两个整型的值,且必须由空格分开) 

4. Python中的交换值

>>> a,b=b,a          
>>> print(a,b)          
2 1
>>> 

2.选择结构 


1. 单分支,语法:

if 表达式:

     语句块

 注:不管是选择结构还是循环结构,Python中的表达式可已不括起来,但是后面的:是不可缺少的,结构中的语句块必须做相应的缩进(4个空格为缩进单位),也就是一定要层次分明

2.双分支,语法:

if 表达式:

       语句块

else:

      语句块

4. 多分支结构,语法:

if 表达式1:

     语句块1

elif  表达式2:            #这里的elif 与其他语言else if 一样,但在python中不能用else if 

     语句块2

elif  表达式3:

     语句块1    

……

else:

     语句块n

3.循环结构 

while 结构:

while 条件表达式:

       循环体

else: 

       代码块

for 结构:

for 取值 in  序列或迭代对象:

      循环体

else ;

       代码块 

注:循环结构中的else子句,可带可不带,其用法是循环因条件表达式,不成立或序列遍结束  ,去执行else中的语句,如果因break语句导致循环提前结束则不会执行else的语句

例:

>>> a=100
>>> while a<200:
	print(a,1)
	a=200
else:
	print(a,2)

	
100 1
200 2
>>> 

4.应用

1. 质数(Prime number,又称素数),指在大于1的自然数中,除了1和该数自身外,无法被其他自然数整除的数(也可定义为只有1与该数本身两个正因数的数)。 

例:求100内素数

>>> j=0
>>> for i in range(1,100,2):    #偶数不是素数,1-100的随机数,步长为2
	for j in range(3,i+1,1):    #判断是否是素数,i+1的随机数的产生不包括i+1
		if i%j==0:
			break
	if j==i:
		print(i)

等价于:

>>> for i in range(3,100,2):
	for j in range(3,int(i**0.5)+1,1):
		if i%j==0:
			break
	else:
		print(i)

注:这里没有包含2的素数,这里为了方便,是设计步长为2

2. 求下平均成绩,输入yes时输入下一个成绩,输入no时得结果

numbers=[]
while True:
    x=input("输入成绩:")
    #异常处理,保证为实数
    try:
        numbers.append(float(x))
    except:
        print("不合法分数?")
    while True:
       flag=input('是否继续输入下一个数:(yes/no)')#执行到这句时,flag声明成功,如果不执行的话,下面if中的flag会报错
       if flag not in('yes','no'):
           print('只能输入yes/no')
       else:
           break
    if flag=='no':#python中只要用到说明就已经声明了
        break
print(sum(numbers)/len(numbers))

 注:变量的声明,在使用时,也就是赋值时,变量声明成功,不要求范围,与java不一样

例:比较

python

if 1<2:

     a=1

print('a声明成功')

java(或其他语言)

if(1<2){

       a=1;

}

print("a声明不成功,且报错")

3. 编写程序,判断今天是今年的第几天

import time             #导时间的包
date=(time.localtime()) #获取当前时间
print(date)             #获取年,月,日,时,分,秒……
year,month,day=date[0:3]#切片,拿到年月日
#year,month,day=2019,1,15#检测1月的时候
print(year,month,day)
day_month=[31,28,31,30,31,30,31,31,30,31,30,31]
if year%400==0 or (year%4==0 and year%100!=0):      #判断是否是闰年(闰年29天)
    day_month[1]=29
print(sum(day_month[0:month-1])+day)                #之所以是month-1,不包含自身
发布了59 篇原创文章 · 获赞 3 · 访问量 4769

猜你喜欢

转载自blog.csdn.net/CDZAllier/article/details/100711878
今日推荐