【千锋Python2205班9.22笔记-day04-python基础语法(一阶段)】

在这里插入图片描述

01-homework

# 1.运算符
# 数学(+、-、*、/、%、//、**)、比较(>、<、>=、<=、==、!=)、逻辑(and、or、not)、赋值(=、+=、-=、*=、%=、//=、**=)
# x % y
print(2349234 % 1000)

# x // y
print(5 // 2)
print(2349234 // 10)

# x ** y
print(3 ** 2)
print(16 ** 0.5)
print(3 ** -2)

age = 19
print(18 <= age < 30)

# 2.if分支
"""
1)单分支  - 如果xxx就xxx(满足条件执行某个操作,这个条件不成立就不执行)
if 条件语句:
    代码段
    
2)双分支   -   如果xxx就xxx否则xxx(满足条件执行某个操作,这个条件不满足的时候执行另外的操作)
if 条件语句:
    代码段1
else:
    代码段2

3)多分支   -  根据不同的条件执行不同的操作
结构1  -  多个条件之间满足:其中一个条件成立的情况下,另外的条件也可能成立
if 条件语句1:
    代码段
if 条件语句2:
    代码段
if 条件语句3:
    代码段
...

结构2 - 多个条件之间满足:其中一个条件成立的情况下,另外的条件绝对不会成立
if 条件语句1:
    代码段
elif 条件语句2:
    代码段
elif 条件语句3:
    代码段
...
else:
    代码段

"""
age = 28
if age >= 18:
    print('成年!')


num = 34
if num % 2 == 0:
    print('xxx')


# 注意:当条件语句不是标准的条件(结果不是布尔值的表达式),这个时候判断条件语句是否成立的原则:看条件语句对应的表达式的结果转换成布尔是否是True
num = 34
# if 0:  -> if False:
if num % 2:
    print('aaa1')


num = 35
# if 1:  -> if True:
if num % 2:
    print('aaa2')


str1 = 'ac'
if str1 != '':
    print('不是空串')

str1 = 'ac'
if str1:
    print('不是空串')

02-三目运算符

# 1. 分支结构的简写
"""
if 条件语句: 代码段(只有一条语句的时候)

总结:冒号换行一个缩进后面的代码如果只有一条语句,那么唯一的这条语句可以直接放在冒号的后边
"""
age = 19
# 单分支结构的简写
if age >= 18: print('成年!')

# 双分支结构简写
if age >= 18: print('成年')
else: print('未成年')

# 多分支结构简写
if age <= 3: print('幼儿')
elif age <= 12: print('儿童')
elif age < 18: print('青少年')
else: print('成年!')

# 2.三目运算符
"""
1) C语言的三目运算符:
条件?值1:值2       -   判断条件语句是否为真,如果是整个运算表达式的结果是值1,否则是值2
age = 9
a = age>=18?"成年":"未成年"

2) Python三目运算符:
值1 if 条件 else 值2    -   判断条件语句是否为真,如果是整个运算表达式的结果是值1,否则是值2
"""
print('------------------------------------------华丽的分割线------------------------------------------------')
age = 9
result = '成年' if age >= 18 else '未成年'
print(result)

03-for循环

# 1.循环结构  - 让代码重复执行(代码只写一遍,重复执行多次)
# 工具:for、while
# print('hello!')
# print('hello!')
# print('hello!')
# print('hello!')
# print('hello!')
# for _ in range(5):
#     print('hello!')

# 2.for循环
"""
1)语法:
for 变量 in 序列:
    循环体
    
2)说明
for、in      -       关键字;固定写法
变量         -       合法的变量名
序列         -       容器型数据类型对应的数据,例如:字符串、列表、字典、元组、集合、迭代器、生成器、range等
:           -        固定写法
循环体       -        结构上,和for保持一个缩进的一条或者多条语句(至少一条);
                     逻辑上,需要重复执行的代码
                     
3)执行过程:
让变量去序列中取值,一个一个的取,取完为止,每取一个值就执行一次循环体。(for循环循环次数由序列中元素的个数决定)
"""
for x in 'abcpo':
    print(x, '你好!')

"""
第1次:
x = 'a': print(x, '你好!')  -> print('a', '你好!')
第2次:
x = 'b': print(x, '你好!')  -> print('b', '你好!')
第3次:
x = 'c': print(x, '你好!')  -> print('c', '你好!')
第4次:
x = 'p': print(x, '你好!')  -> print('p', '你好!')
第5次:
x = 'o': print(x, '你好!')  -> print('o', '你好!')
第6次:(循环结束)

a 你好!
b 你好!
c 你好!
p 你好!
o 你好!
"""
print('------------------------------------------华丽的分割线------------------------------------------------')
nums = [10, 89, 45, 23]
for x in nums:
    print(x * 10)

"""
100
890
450
230
"""

# 3.range函数     -   创建一个等差数列
# 1 2 3 4 5 6  - 差1
# 3 6 9 12    -  差3
# 50 40 30 20   -   差-10
"""
1)range(N)      -   产生[0,N)的等差数列,差是1; range(5)  -> 0,1,2,3,4
2)range(M,N)    -   产生[M,N)的等差数列,差是1; range(5, 15)  -> 5,6,7,8,9,10,11,12,13,14
                                              range(-3, 3)  -> -3,-2,-1,0,1,2
3) range(M,N,step)  - 产生[M,N)的等差数列,差是step;range(3,13,3) -> 3,6,9,12
                                                 range(50,19,-10)  -> 50,40,30,20 
"""
print('------------------------------------------华丽的分割线------------------------------------------------')
for x in range(5):
    print(x)

print('------------------------------------------华丽的分割线------------------------------------------------')
for x in range(5, 15):
    print(x)

print('------------------------------------------华丽的分割线------------------------------------------------')
for x in range(50, 19, -10):
    print(x)
# 问题:打印'hello world!'100次?
# for x in range(100):
#     print('hello world!')

04-求和和统计个数的套路

# 1. 累积求和
"""
求和套路:
第一步:在循环外面定义个变量来保存最后的和(变量默认值是0)
第二步:通过循环依次获取所有需要求和的对象
第三步:在循环体中获取到一个求和对象,就往保存和的变量中加一个数据(+=)
最后:循环结束的时候保存和的变量中的数据就是最后的和
"""
# 案例:求1+2+3+4+...+100的和
sum1 = 0
for x in range(1, 101):
    # sum1 = sum1 + x
    sum1 += x
print(sum1)


# 案例:求100到200中所有偶数的和(包含100和200)
# 100+102+104+106+...+200
# 方法1:
sum1 = 0
for x in range(100, 201, 2):
    sum1 += x
print(sum1)

# 方法2:
sum1 = 0
for x in range(100, 201):
    if x % 2 == 0:
        sum1 += x
print(sum1)

# 练习:求100以内所有能被3整除但是不能被5整除的数的和
# 方法1:
sum1 = 0
for x in range(100):
    if x % 3 == 0 and x % 5 != 0:
        sum1 += x
print(sum1)

# 方法2:
# 0,3,6,9,12,15,...,99
sum1 = 0
for x in range(0, 100, 3):
    if x % 5 != 0:
        sum1 += x
print(sum1)

# 案例:求scores中所有分数
scores = [89, 56, 78, 99, 70]
sum1 = 0
for x in scores:
    sum1 += x
print(sum1)


# 2.统计个数
# 案例1:统计scores中不及格的人数
scores = [89, 56, 78, 99, 70, 48, 79, 30]
count = 0
for x in scores:
    if x < 60:
        count += 1
print(count)

# 练习:统计100 ~ 200中能被7整除的偶数的个数
# 方法1:
count = 0
for x in range(100, 201, 2):
    if x % 7 == 0:
        count += 1
print(count)

# 方法2:
count = 0
for x in range(105, 201, 7):
    if x % 2 == 0:
        count += 1
print(count)

05-while循环

# 1. while循环
"""
1)语法:
while 条件语句:
    循环体
    
2)执行过程:
不断判断条件语句是否为True,为True就执行循环体。直到条件语句的结果是False,整个循环直接结束!
(先条件语句是否为True,为True执行循环体,执行完循环体再判断条件语句是否True,为True再执行循环体,....以此类推,直到条件语句为False,整个循环结束)
"""
x = 0
while x < 10:
    print('hello world!')
    x += 1

# 案例:求1+2+3+4+...+100的和
sum1 = 0
num = 1
while num < 101:
    sum1 += num
    num += 1
print(sum1)

# 练习:统计100 ~ 200中能被7整除的偶数的个数
count = 0
num = 100
while num <= 200:
    if num % 7 == 0:
        count += 1
    num += 2
print(count)

# 2.for循环和while循环的选择
"""
基本原则:能用for循环解决的问题都使用for循环,for循环解决不了的才使用while循环。
for解决不了的问题:循环次数不确定(程序员在写代码的时候无法确定循环次数 - 次数由使用者决定)
"""
# 案例:提示用户输入密码,直到输入正确为止
"""
请输入密码:123
请输入密码:abc
请输入密码:123abc
...
请输入密码:123456
(结束)
"""
pw = '123456'
value = None
while value != pw:
    value = input('请输入密码:')

06-continue 和break

# 注意:continue和break是关键字,只能在循环体中使用
# 1. continue   -   结束一次循环
# 执行循环体的时候如果遇到了continue那么这次循环结束,直接进入下一次循环
for x in range(5):
    print('======')
    continue
    print('------')
    print('++++++')

print('------------------------------------------华丽的分割线------------------------------------------------')
for x in range(10):
    if x % 2 == 0:
        continue
    print(x)

"""
x取值:0、1、2、3、4、5、6、7、8、9
x = 0: if 0 % 2 == 0 -> if True: continue
x = 1: if 1 % 2 == 0 -> if False  -> print(x)
x = 2: 

1
"""

# 2. break      -   结束整个循环
# 执行循环体的时候如果遇到break,整个循环直接结束
print('------------------------------------------华丽的分割线------------------------------------------------')
for x in range(5):
    print('======')
    break
    print('------')
    print('++++++')

print('------------------------------------------华丽的分割线------------------------------------------------')
for x in range(10):
    if x == 3:
        break
    print(x)

# 3.当while遇上break
"""
while循环使用的固定结构:
while True:
    需要重置执行的操作
    if 循环结束条件:
        break
"""
# pw = '123456'
# while True:
#     value = input('请输入密码:')
#     if value == pw:
#         break


# 练习: 猜数字游戏。
"""
系统随机产生一个0~100的整数,然后提示用户输入数字,直到输入正确为止。当输入错误的时候给出相应的提示。

假设随机数是:48
请输入一个整数(0~100):50
大了,再小点儿!
请输入一个整数(0~100):25
小了,再大点儿!
请输入一个整数(0~100):30
小了,再大点儿!
...
请输入一个整数(0~100):48
恭喜你,猜对了!
(结束)
"""
from random import randint
value = randint(0, 100)         # 创建一个0到100的随机整数,并且保存在value中

while True:
    data = int(input('请输入一个整数(0~100):'))
    if data > value:
        print('大了,再小点儿')
    elif data < value:
        print('小了,再大点儿')
    else:
        print('恭喜你,猜对了!')
        break

07-循环的else

# 1.完整的循环结构
"""
1)完整的for循环
for 变量 in 序列:
    循环体
else:
    代码段
    
2)完整的while循环:
while 条件语句:
    循环体
else:
    代码段
    

else的作用:
1. else的存在不会影响原来循环的执行
2. 如果前面的循环是自然死亡的在循环结束后会执行else中的代码段,如果循环是因为遇到break而结束,else中的代码段不会执行
"""
for x in range(5):
    print('=======')
else:
    print('!!!!')

print('------------------------------------------华丽的分割线------------------------------------------------')
sum1 = 0
for x in range(10):
    sum1 += x
    if x == 5:
        break
    print(x)
else:
    print('!!!!')

print(sum1)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值