Python基础入门 | Day2 条件与循环

用法查询

在此,总结条件语句循环语句一些常见的使用方法,希望这可以使一些记不住它们两脚兽(比如笔者本人)更高效地脱发

条件语句

条件语句 if 作为大多数语言的本土物种,允许使用者进行判断并执行相应的代码块。除此之外,

if '用户愿意使用bool运算等逻辑方法' is Trueprint('if将会支持更复杂的判断')

1. 最基础的if判断

#说实话,我觉得没人想看这条
和大多数语言一样,python中的if支持了>,<,==,<=,>=,and,or,not等逻辑。当然,如果用户对自己的逻辑有自信,可以在这里随意使用bool值

if 2 > 1 and not 2 > 3:
    print('Correct Judgement!')

# Correct Judgement!

A = [1,2,3]
if 3 in A:
    if 2 in A:
        if 0 not in A:
            if 1:
                if not '':
                    print('Correct Judgement!')

# Correct Judgement!

2. if…elif…else

elif 语句即为 else if,用来检查多个表达式是为真,并在为真时执行特定代码块中的代码
有研究指出这种用法会在一定程度侵占if嵌套的生存空间,但笔者认为应该具体问题具体分析

temp = input('请输入成绩:')
source = int(temp)
if 100 >= source >= 90:
    print('A')
elif 90 > source >= 80:
    print('B')
elif 80 > source >= 60:
    print('C')
elif 60 > source >= 0:
    print('D')
else:
    print('输入错误!')

#请输入成绩:99
#A

3. assert(断言)

assert断言不同于两脚兽在数学证明中使用的概念
事实上,assert可以伴随等于True或者False的bool值
当且仅当assert False,程序自动崩溃并AssertionError

A = [1,2,3]
assert 1 in A
print('Correct Judgement!')

#Correct Judgement!


my_list = ['lsgogroup']
my_list.pop(0)
assert len(my_list) > 0

# AssertionError

循环语句

一般的,Python循环科有forwhlie两个属
在此,分别介绍循环和一些在使用循环时能保护用户头发的方法

循环

1. while循环

while语句最基本的形式包括一个位于顶部的bool表达式,一个或多个属于while代码块的缩进语句。
笔者希望用户填写的bool表达式有等于False的可能
嘿,朋友,我用我奶奶泡的蜜桃茶发誓,无论如何,你真的应该试试while Ture:

#无聊的时候可以玩一下这个游戏
#当然,笔者更希望用户无聊的时候来给笔者点个赞
count = 0
while count < 3:
    temp = input("猜一猜小姐姐想的是哪个数字?")
    guess = int(temp)
    if guess > 8:
        print("大了,大了")
    else:
        if guess == 8:
            print("你太了解小姐姐的心思了!")
            print("哼,猜对也没有奖励!")
            count = 3
        else:
            print("小了,小了")
    count = count + 1
print("游戏结束,不玩儿啦!")
while True:
    learn()
while False:
    laze()    
2. while - else 循环

当while循环圆满完成使命,执行else输出
如果while循环中执行了跳出循环的语句,比如 break,else的代码块将被忽略
#哦我的天啊,明明额外声明一个bool值,用判断语句可以实现更复杂的功能的,这个用法一点也不符合我的审美

count = 0
while count < 5:
    print("%d is  less than 5" % count)
    count = count + 1
else:
    print("%d is not less than 5" % count)
    
# 0 is  less than 5
# 1 is  less than 5
# 2 is  less than 5
# 3 is  less than 5
# 4 is  less than 5
# 5 is not less than 5
#建议用户自己运行几遍
i = 0
while i < 2:
    coin = input('是否白嫖(请输入是或否):')
    if coin == '是':
        print('下次一定')
        break
    elif coin == '否':
        print('感谢观众老爷的三连')
        break
    else:
        pass
    i += 1
else:
    print('感谢使用')
3. for 循环

从定义上讲: for循环是迭代循环,在Python中相当于一个通用的序列迭代器,可以遍历任何有序序列,如str、list、tuple等,也可以遍历任何可迭代对象,如dict。每次循环,迭代变量被设置为可迭代对象的当前元素,提供给代码块使用。
用两脚兽语,用户只需要给for一个可以遍历对象,for语句就会遍历这个对象并用得到的值来执行跟随的代码块
#好吧我承认,用定义更好

for i in 'ILoveLSGO':
    print(i, end=' ')  # 不换行输出

# I L o v e L S G O
4. for - else 循环

当for循环正常执行完的情况下,执行else输出,如果for循环中执行了跳出循环的语句,比如 break,将不执行else代码块的内容
用户可能会发现这好像while - else语句一样,这里笔者澄清一下:
没错,就是一样

for num in range(10, 20):  # 迭代 10 到 20 之间的数字
    for i in range(2, num):  # 根据因子迭代
        if num % i == 0:  # 确定第一个因子
            j = num / i  # 计算第二个因子
            print('%d 等于 %d * %d' % (num, i, j))
            break  # 跳出当前循环
    else:  # 循环的 else 部分
        print(num, '是一个质数')

# 10 等于 2 * 5
# 11 是一个质数
# 12 等于 2 * 6
# 13 是一个质数
# 14 等于 2 * 7
# 15 等于 3 * 5
# 16 等于 2 * 8
# 17 是一个质数
# 18 等于 2 * 9
# 19 是一个质数

方法

for Genus in [‘for’,‘while’]:
  print(’{}往往会伴随一些函数或语句出现,这里笔者不负责任地将他们统一称为方法’.format(Genus))

1.range() 函数

  range([start,] stop[, step=1])
    3个参数,中括号中参数可选
    step=1,参数step的默认值是1
    range 生成了一个从start到stop的数字序列,
    该序列包含start但不包含stop

for i in range(1, 10, 2):
    print(i)

# 1
# 3
# 5
# 7
# 9
2.enumerate()函数

  enumerate(sequence, [start=0])
    sequence:一个序列、迭代器或其他支持迭代对象。
    start:下标起始位置。
    返回 enumerate(枚举) 对象
    注意第一个例子

seasons = ['Spring', 'Summer', 'Fall', 'Winter']
lst = list(enumerate(seasons))
print(lst)
# [(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')]
for i, language in enumerate(languages, 2):
    print(i, 'I love', language)
print('Done!')
# 2 I love Python
# 3 I love R
# 4 I love Matlab
# 5 I love C++
# Done!

  #我打赌有人想到了笛卡尔积或者不交并,我打赌这个人就是我

3.break/continue 语句

  break语句可以跳出当前所在层的循环
  相对的,continue终止本轮循环并开始下一轮循环

import random
secret = random.randint(1, 10) #[1,10]之间的随机数

while True:
    temp = input("猜一猜小姐姐想的是哪个数字?")
    guess = int(temp)
    if guess > secret:
        print("大了,大了")
    else:
        if guess == secret:
            print("你太了解小姐姐的心思了!")
            print("哼,猜对也没有奖励!")
            break
        else:
            print("小了,小了")
print("游戏结束,不玩儿啦!")

#猜一猜小姐姐想的是哪个数字?8
#你太了解小姐姐的心思了!
#哼,猜对也没有奖励!
#游戏结束,不玩儿啦

#这只是一个例子,这只是一个例子!
for i in range(10):
    if i % 2 != 0:
        print(i)
        continue
    i += 2
    print(i)

# 2
# 1
# 4
# 3
# 6
# 5
# 8
# 7
# 10
# 9
4.pass 语句

  Python不会像慷慨的笔者一样允许用户在必须填写代码块的位置留下空白

def a_func():

# SyntaxError: unexpected EOF while parsing

  pass语句就是用来解决这个问题的
  事实上,它的意思是“什么都不做”

def a_func():
    pass

a_func()

#

#你在期待什么?

推导式

推导式描述了已知可遍历对象繁殖新可遍历对象的过程
推导式的描述被认为是有必要的,因为浅尝辄止则不会思考这种事,而笔者希望尊贵的用户能用这一工具保护自己的头发
研究表明,掌握了这种繁殖方式的用户可以对可遍历对象进行大规模养殖

1.列表推导式

  [ expr for value in collection [if condition] ]

a = [(i, j) for i in range(0, 3) if i < 2 for j in range(0, 3) if j >= 0]
print(a)

# [(0, 0), (0, 1), (0, 2), (1, 0), (1, 1), (1, 2)]

2.元组推导式

  ( expr for value in collection [if condition] )

a = (x for x in range(10))
print(a)

# <generator object <genexpr> at 0x0000025BE511CC48>

print(tuple(a))

# (0, 1, 2, 3, 4, 5, 6, 7, 8, 9)

3.字典推导式

  { key_expr: value_expr for value in collection [if condition] }

b = {i: i % 2 == 0 for i in range(10) if i % 3 == 0}
print(b)
# {0: True, 3: False, 6: True, 9: False}

4.集合推导式

  { expr for value in collection [if condition] }

c = {i for i in [1, 2, 3, 4, 5, 5, 6, 4, 3, 2, 1]}
print(c)
# {1, 2, 3, 4, 5, 6}

笔者理解

判断语句

  1. 需要进行判断时使用
  2. 本质在判断bool值为True还是False

循环语句

  1. for进行遍历
  2. 循环…else结构与额外bool值
  3. range()的“包括性”:左包右不包
  4. enumerate()返回 enumerate(枚举) 对象
  5. 推导式可以理解为一种“构造方法”

没有别的指南了,你现在要靠自己了。

祝你好运。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值