day2 条件语句

目录

一、条件语句

if

if-else

if - elif - else

assert

二、循环语句

while 

while-else

for

for-else

range()

enumerate()函数

break 语句

continue()

pass

推导式


一、条件语句
 
 

1、if

if expression:
    expr_true_suite
  • if 语句的expre_true_suite代码只有当表达式expression结果为真时执行,否则将继续执行紧跟在代码块后面的语句;
  • 单个if语句中的expression条件表达式可以通过布尔操作符 and、or 和not 实现多重条件判断。
  • if 2>1 and not 2>3:
    • print()

2、if -else

if expression:
    expr_true_suite
else:
    expr_false_suite
  • 如果 if 语句的条件表达式结果布尔值为假,那么程序将执行 else 语句后的代码
  • temp=input()#函数接收的任何数据类型都默认为str
    guess=int(temp)
    if guess==666:
        print('对了')
    else:
        print('错了')
    print('结束')

    if-else 的嵌套

  • temp = input("不妨猜一下小哥哥现在心里想的是那个数字:")
    guess = int(temp)
    if guess > 8:
        print("大了,大了")
    else:
        if guess == 8:
            print("你这么懂小哥哥的心思吗?")
            print("哼,猜对也没有奖励!")
        else:
            print("小了,小了")
    print("游戏结束,不玩儿啦!")

    3、if - elif - else

  • if expression1:
        expr1_true_suite
    elif expression2:
        expr2_true_suite
     .
     .
    elif expressionN:
        exprN_true_suite
    else:
        expr_false_suite

    4、assert 关键词

  • assert 关键词后边的条件为False时,程序自动崩溃爱并跑出AssertionError的异常;

  • mylist=['lsgogroup']
    mylist.pop(0)#删除第1个元素,只有1个,所以mylist为空,长度为0
    assert(len(mylist)>0)

     

  • 在进行单元测试时,可以用来在程序中置入检查点,只有条件为 True 才能让程序正常工作

二、循环语句

1、while循环

while 布尔表达式:
 代码块

while 循环的代码块会一直循环执行,直到布尔表达式的值为布尔假。

while 布尔表达式可以带有<、>、==、!=、in、not in 德运算符

while布尔表达式可以是数值之类的条件

while  后写入一个非零整数时,视为真值,执行循环体;

while后写入0视为假值,不执行循环体;

while 后写入str、list或任何序列,长度为0则视为真,否则视为假;

 

试着实现一个程序,猜一下输入的数字,要求最多只能猜3次,可以提醒猜大还是猜小了;

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("游戏结束,不玩儿啦!")
string = 'abcd'
while string:
    print(string)
    string = string[1:]

2、while-else 

while 布尔表达式:
 代码块
else:
 代码块
while 循环正常执行完的情况下,执行 else 输出,如果 while 循环中执行了跳出循环的语句,比如 break
将不执行 else 代码块的内容。
count = 0
while count < 5:
    print("%d is less than 5" % count)
    count = count + 1
 else:
 print("%d is not less than 5" % count)
count = 0
while count < 5:
    print("%d is less than 5" % count)
     count = 6
     break
else:
    print("%d is not less than 5" % count)

3、for 循环

for 迭代变量 in 可迭代对象:
 代码块
  • for 循环是迭代循环,在Python中相当于一个通用的序列迭代器,可以遍历任何有序序列,如 strlisttuple 等,也可以遍历任何可迭代对象,如 dict
  • 每次循环,迭代变量被设置为可迭代对象的当前元素,提供给代码块使用。
  • for i in 'ILoveLSGO':
     print(i, end=' ') # 不换行输出  end设置输出后空格分隔
    
    
    
    # I L o v e L S G O
    ###列表
    member = ['张三', '李四', '刘德华', '刘六', '周润发']#列表
    for each in member:
        print(each)
    
    
    for i in range(len(number)):
        print(number[i])
    
    
    
    ###字典
    dic = {'a': 1, 'b': 2, 'c': 3, 'd': 4}
    
    for key, value in dic.items():
        print(key, value, sep=':', end=' ')
    
    
    for key in dic.keys():
        print(key, end=' ')
    
    
    for value in dic.values():
        print(value, end=' ')
    
    
    

    4、for -else

  • for 迭代变量 in 可迭代对象:
        代码块
    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, '是一个质数')

    5、range

  • for i in range(2, 9):  # 不包含9
        print(i)

  • 包含2,不包含9

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

  • 包含1,不含10

6、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')]



lst = list(enumerate(seasons, start=1))  # 下标从 1 开始
lst

[(1, 'Spring'), (2, 'Summer'), (3, 'Fall'), (4, 'Winter')]
for i, language in enumerate(languages, 1):
    print(i, 'I love', language)
print('Done!')


1 I love Python
2 I love R
3 I love Matlab
4 I love C++
Done!

7、break 

跳出循环

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、pass 语句

  • 不做任何事”,如果你在需要有语句的地方不写任何语句,那么解释器会提示出错,而 `pass` 语句就是用来解决这些问题的。
  • pass`是空语句,不做任何操作,只起到占位的作用,其作用是为了保持程序结构的完整性。尽管`pass`语句不做任何操作,但如果暂时不确定要在一个位置放上什么样的代码,可以先放置一个`pass`语句,让代码可以正常运行

9、列表推导式

**列表推导式**

```python
[ expr for value in collection [if condition] ]

x = [-4, -2, 0, 2, 4]
y = [a * 2 for a in x]

x = [i ** 2 for i in range(1, 10)]
print(x)

x = [(i, i ** 2) for i in range(6)]
print(x)

x = [i for i in range(100) if (i % 2) != 0 and (i % 3) == 0]
print(x)

a = [(i, j) for i in range(0, 3) for j in range(0, 3)]
print(a)

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

元组推导式

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

字典推导式

b = {i: i % 2 == 0 for i in range(10) if i % 3 == 0}
print(b)

{0: True, 3: False, 6: True, 9: False}
集合推导式

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

集合去重 # {1, 2, 3, 4, 5, 6}

d = 'i for i in "I Love Lsgogroup"'
print(d)

原文输出:i for i in "I Love Lsgogroup"


e = (i for i in range(10))
print(e)

<generator object <genexpr> at 0x000001312CE99780>

通过next(e)

for each in e:
    print(each, end=' ')

1 2 3 4 5 6 7 8 9

s = sum([i for i in range(101)])
print(s)  # 5050
s = sum((i for i in range(101)))
print(s)  # 5050

1、编写一个Python程序来查找那些可以被7除以5的整数的数字,介于1500和2700之间。

for num in range(1500,2700):
    if num%35==0: 被7和5同时整除,就是可以被35整除;
        print(num)


 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值