Day03.python概念:语句,表达式与if、while、for循环分支、迭代

声明
1)该文章整理自网上的大牛无私奉献的资料,具体引用的资料请看参考文献。
2)本文仅供本人学习记录,非商用。所以每一部分具体的参考资料并没有详细对应。如果某部分不小心侵犯了大家的利益,还望海涵,并联系博主删除。
3)博主才疏学浅,文中如有不当之处,请各位指出,共同进步,谢谢。

1.代码风格

Python的格式规范——PEP8

主要规范:
注意缩进,不能把tab键与四个空格连用,最好使用四个空格
一行不超过79个字符(直接换行即可)
函数与函数之间空两行

2.赋值语句

基本赋值:=

序列赋值:

x,y = 5,10 
x,y,z = 10,20,30
#Python交换两个值
x,y = y,x
# 拆包------>结果 a='l' b ='i' c='k' 注:如果序列短于或长于被赋值的元素会发生错误
a,b,c = 'lik'

扩展序列的拆包赋值:剩余元素会赋值给*元素,*元素可以为空

# *代表获取剩余元素到list--->结果a='h',b='e',c=['l','l','o']  
a,b,*c = 'hello'

多目标赋值:

 a = b = 10
# 注意:内存中会内置小于256的数字,会内置长度小于等于3的字符串
# 也就是说,如果a=b=10或者a=b='aaa'他们指向内存中相同的地址可以用is判断
# 注意:如果因为列表是可变类型所以a=b=列表时,要注意改变其中一个另一个会跟着改变的问题

参数化赋值:

a += b
 
c = [1,3]
d = [2,4]
c.expend(d)
# 注:也可用c += d,但效率低于.expend()

3.表达式

字面值表达式
函数调用:len()
方法调用:如序列.pop()
打印操作:

# sep='分隔符'
print(a,b,c,sep='|')
 
# end='终止符'
print(a,b,c,end='.../n')
 
# 将输出打印到文件中 file='指定元素'
print(a,b,c,file = open('result.txt','w',encoding='utf8')

4.流程控制

if条件判断
格式:
一般个数:if…else
多重格式:if…elif…elif…else
三元运算的if:a = Y if X else Z (如果X成立将Y赋值给a如果不成立将Z赋值给a)
可以通过下图来简单了解条件语句的执行过程:
在这里插入图片描述

Python interprets non-zero values as True. None and 0 are interpreted as False.

Python 判断非0的值为 True, 而None和0被认为是 False。注意这里的True和False首字母大写,Python对大小写敏感。

条件语句其基本形式为:

if 判断条件:
    执行语句……
else:
    执行语句……

当判断条件为多个值时,可以使用以下形式:
Flowchart of if...elif....else in python programming

if 判断条件1:
    执行语句1……
elif 判断条件2:
    执行语句2……
elif 判断条件3:
    执行语句3……
else:
    执行语句4……

三元运算的if:a = Y if X else Z

score=80
result=‘及格’  if score>=60 else ‘不及格’

print(result)    #打印结果是及格

while循环

while 语句用于循环执行程序,即在某条件下,循环执行某段程序,以处理需要重复处理的相同任务。其流程为:
在这里插入图片描述
执行语句

while 判断条件:
    执行语句……

实例
以下实例使用了嵌套循环输出2~100之间的素数:

#!/usr/bin/python
# -*- coding: UTF-8 -*-
 
i = 2
while(i < 100):
   j = 2
   while(j <= (i/j)):
      if not(i%j): break
      j = j + 1
   if (j > i/j) : print i, " 是素数"
   i = i + 1
 
print "Good bye!"
x=10
while x:
    x -=1               #减等于1,到这话 print(x,end=' ')9 8 7 6 5 4 3 2 1 0
        if x % 2 != 0   #如果x除以2余数不等于0
        continue        #得出结果不满足的退出,继续执行
    print(x,end=' ')    #这样输出结果是10以内的偶数,2 4 6 8     

break(退出),continue(退出继续循环),pass(占位符),else

# else的用法,若循环不是由执行break退出的话就执行else里面的语句
x = 10
while x:
    x -= 1
    print(x)
else:
    print("循环结束")

在这里插入图片描述

for循环

for循环可以遍历任何序列的项目,如一个列表或者一个字符串。其流程为:
在这里插入图片描述
for循环的语法格式如下:

for iterating_var in sequence:
   statements(s)

for x in 目标序列(可以是列表,字符串,字典,元组)

range() range数字的范围

  for i in range(10)
    print(i)
for x in range(0,101,3)   #x是0到101,中间间隔3个数字
    print(x)

enumerate() 目前循环是第几项

for i,t in enumerate(s):
    print('{}) {}'.format(i,t))
s=‘youpinketang’

for idx,item in enumerate(s)            #idx是s里面的序列, item对应的单词
    print("{}) {}"). format(idx,item)   #format格式化, 打印idx item,如果想从1开始,idx+1

python中的switch操作:

operation = { 'add':'添加操作',
              'update':'更新操作''delete':'删除操作'
            }
 
print(operation.get('add'))
print(operation.get('update'))
print(operation.get('delete'))

也可以指定执行函数

def add(x):
    print(x+10)
 
 
operation = { 'add': add,
              'update':lambda x:print(x*2)'delete':lambda x:print(x*3)
            }
 
 
def default_method(x):
    print('默认方法,什么都不做')
 
operation.get('add',default_method)(10)
operation.get('update',default_method)(10)
operation.get('delete',default_method)(10)

在这里插入图片描述

5.迭代

Python中哪些对象可以用for呢?

实现了迭代协议的对象或者是可迭代对象。

迭代器对象

实现了迭代协议的对象称为可以使用.next() 或者全局函数next()

如文件格式

f = open("data.txt","r",encoding="utf8")
f.__next__()
next(f)

列表不能使用__next__()方法但可以用for循环?

列表,可以用for迭代,但其实是for自动给可迭代对象添加了迭代器方法。使用iter(可迭代对象)
可迭代对象
没有实现迭代器方法,转换成迭代器对象使用iter(可迭代对象),如列表。
判断可迭代对象是否实现了迭代协议

l = [1,2,3]
iter(l) is l  # False

内置可迭代对象

range()、zip([‘x’,‘y’,‘z’],[1,2,3])、map(函数,可迭代对象)

总结

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值