7.循环的else分支&数字型&列表基本使用

一、循环的else分支

# 1.pass
# 占位语句,没有实际意义,只是为了保证代码结构的完整性,后期会用实际有意义的的代码代替掉
# if 1:
#     pass
# print('ga')
​
# 2.循环中的else
"""
while  xxx:
    pass
else:
    pass
​
for 变量 in 容器:
    pass
else:
    pass
"""
# a.注意1:当循环中没有break语句的时候,循环执行完毕之后,else代码块最后都会被执行,不常用,没有意义
n = 1
while n <= 5:
    print(n)
    n += 1
else:
    print("else被执行了")
​
for i in range(1,6):
    print(i)
else:
    print('for~~~~else')
​
print("*" * 50)
​
# b.注意2:当循环中有break语句且break语句会被执行,则else不会被执行    ******
# 如果break执行,则else不执行;如果break不执行,则else会执行
n = 1
while n <= 5:
    print(n)
    if n == 10:
        break
    n += 1
else:
    print("else被执行了")
​
for i in range(1,6):
    print(i)
    if i == 10:
        break
else:
    print('for~~~~else')
# c.
# 练习1:从控制台输入一个数,判断该数是否是质数
# 质数【素数】:只能被1或它本身整除的数,最小的质数为2

# 方式一:break和循环的else         ******
num = input("请输入一个数:")
if num.isdigit():
    num = int(num)   # 非负数
    if num < 2:
        print(f"{num}不是质数")
    else:
        # num >= 2
        # 思路:判断10是否是质数,只需要在2~9之间找到一个数,能整除10,则说明10不是质数
        for n in range(2,num):
            if num % n == 0:   # 整除
                print(f"{num}不是质数")
                # 得到结论,可以提前结束循环
                break
        else:
            print(f"{num}是质数")
else:
    print("输入有误")
​
# 方式二:统计整除的数的个数
num = input("请输入一个数:")
if num.isdigit():
    num = int(num)   # 非负数
    if num < 2:
        print(f"{num}不是质数")
    else:
        count = 0
        for n in range(1,num + 1):
            if num % n == 0:
                count += 1  # 统计能整除num的数的个数
        if count == 2:
            print(f"{num}是质数")
        else:
            print(f"{num}不是质数")
else:
    print("输入有误")

# 方式三:假设法
num = input("请输入一个数:")
if num.isdigit():
    num = int(num)   # 非负数
    if num < 2:
        print(f"{num}不是质数")
    else:
        result = True
        for n in range(2,num):
            if num % n == 0:
                result = False
                break
        if result:
            print(f"{num}是质数")
        else:
            print(f"{num}不是质数")
else:
    print("输入有误")
​
# 练习2:统计101~200中质数的个数,并且输出所有的质数
# 方式一
count = 0
for num in range(101,201):
    for n in range(2, num):
        if num % n == 0:
            break
    else:
        count += 1
        print(f"{num}是质数")
print(count)
​
# 方式二
count = 0
for num in range(101,201):
    result = True
    for n in range(2, num):
        if num % n == 0:
            result = False
            break
    if result:
        count += 1
        print(f"{num}是质数")
print(count)

二、数字类型

1.数学功能

内置功能

  • abs(x):返回数字的绝对值

  • (x>y)-(x<y):比较大小,如:x=3,y=5

  • max(x1,x2,…):返回给定参数的最大值

  • min(x1,x2,…):返回给定参数的最小值

  • pow(x,y):求x的y次方的值

  • round(x,n):返回浮点数x的四舍五入值,如给出n值,则代表舍入到小数点后的位数

导入math模块 import math;

  • ceil(x):返回x的上入整数,不能直接访问,需要通过math访问,即math.ceil(18.1)

  • floor(x):返回x的下入整数,同ceil的用法

  • modf(x):返回x的整数部分和小数部分,两部分的数值符号与x相同,整数部分以浮点型表示,同ceil的用法

  • sqrt(x):返回数字x的平方根,数字可以为负数,返回类型为实数【浮点型】,同ceil的用法

数学常量

math.pi :圆周率 math.e :自然常数

# 一、内置功能
# 1.abs()
print(abs(-34))
​
# 2.max()/min()                     *****
print(max(34,6,674,6,61,9))
print(min(34,6,674,6,61,9))
​
# 3.pow(x,y)等价于x ** y
print(pow(5,3))
print(5 ** 3)
​
# 4.round(x,n):获取浮点数x的四舍五入的值,n表示保留小数点后n位    *****
print(round(10.589))
print(round(10.389))
​
print(round(10.589,2))
print(round(10.389,1))
​
# 5.(x>y)-(x<y):比较大小,如:x=3,y=5
# 工作原理:如果结果是-1,则表示y较大,如果结果是1,则表示x较大,如果结果是0,则表示x和y相等
x = 5
y = 3
print((x>y)-(x<y))
​
# 6.sum(数字容器):求和            *****
print(sum([2,3,4]))
print(sum(range(1,101)))
​
# 二、math模块
# 注意:创建py文件的时候,文件名字一定不要使用系统模块名
import  math
​
# 注意:向上取整和向下取整不涉及四舍五入
# 1.ceil()                      *****
print(math.ceil(10.987))
print(math.ceil(10.187))
​
# 2.floor()                     *****
print(math.floor(10.987))
print(math.floor(10.187))
​
# 3.sqrt(x),求x的算术平方根,而且结果是浮点数
print(math.sqrt(36))
​
# 4.常量
print(math.pi)   # 圆周率
print(math.e)    # 自然常数

2.随机数功能

import  random
​
# 1.choice(容器)                      *******
r1 = random.choice("abcd")
print(r1)
r1 = random.choice([3,5,6,7])
print(r1)
r1 = random.choice(range(100))  # 0~99
print(r1)
​
# 2.randint(start,end),注意:step默认为1,无法自定义            ****
r2 = random.randint(1,100)   # 1~100
print(r2)
​
# 3.randrange(start,end,step),类似range(start,end,step),start和step都可以省略
r3 = random.randrange(100)
print(r3)
​
# 练习1:获取10~100之间的任意一个整数随机数
print(random.choice(range(10,101)))   # 包头不包尾
print(random.randint(10,100))         # 闭区间
print(random.randrange(10,101))      # 包头不包尾
​
# 练习2:获取10~100之间的任意一个偶数随机数
print(random.choice(range(10,101,2)))
print(random.randrange(10,101,2))
​
# 4.sample(容器,n)                                    ******
# 作用:从指定的容器中随机选择n个数据,得到的结果是一个列表
# 注意:容器中的数据是被一次性取出来的,所以同一个数据只能被提取一次
r4 =random.sample('abcd1234',3)
print(r4)
r4 =random.sample([34,56,67,7,8,99],2)
print(r4)
r4 =random.sample(range(100),3)
print(r4)
​
# 5.random():获取0~1之间的任意一个随机浮点数,[0,1)前闭后开区间      *****
r5 = random.random()
print(r5)
​
# 6.uniform(a,b):获取a~b之间的任意一个随机浮点数,底层还是通过random()进行计算的    ******
r6 = random.uniform(10,100)
print(r6)
​
# 练习3:获取20~100之间的任意一个浮点数随机数
print(random.uniform(20,100))
# [0,1)----》[0,80)----》[20,100)
print(random.random() * 80 + 20)

三、列表

1.概念

普通变量:使用变量存储数据,但是,缺点:一个变量每次只能存储一个数据 ,num = 10 name = "aaa"

思考:如果一次性存储多个数据,怎么做?

实际问题:定义5个人的年龄,求他们的平均年龄,按照以前的方式解决:

age1 = 10
age2 = 18
age3 = 9
age4 = 15
age5 = 20
average = (age1 + age2 + age3 + age4 + age5) / 5

继续思考:如果要存储100,甚至1000个人的年龄呢?

解决方案:此时采用定义普通变量的方式会显得很麻烦,而Python提供了一种解决方案,使用列表进行多个数据的存储

作用:列表相当于是一个容器,可以同时存储多种类型的数据

本质:列表是一个有序的,可以存储重复元素的集合

说明:有序指的就是有顺序【数据的存放的顺序和底层存储的顺序是相同的】

agelist = [10,18,9,15,20]
average = sum(agelist) / len(agelist)

2.基本使用

2.1定义列表

定义一个列表相当于定义一个列表类型的变量

变量名 = 值

语法:列表名 = [数据1,数据2,数据3.......]

说明:

​ a.列表名其实就是一个变量名【标识符】,注意:尽量不要直接使用list【系统有一个功能list(x)】,使用listxxx

​ b.[]是列表特有的表示方式

​ c.数据1,数据2,数据3被称为元素

​ d.列表中的元素会被自动编号,从0开始,该编号被称为索引,下标或者角标

​ e.索引的取值范围:0 ~ (元素个数 - 1)

​ -1 ~ -元素个数

# 1.空列表
# 注意1:列表变量的命名不要使用list,因为list是一个关键字
list1 = []
print(list1)
print(type(list1))
​
# 2.非空列表
# a.
# 注意2:列表中允许存储重复元素
list1 = [2,3,3,4,4,4,4]
print(list1)
​
# b.
# 注意3:列表是有序的【数据的存放的顺序和底层存储的顺序是相同的】
list2 = [34,6,8,9,90,0]
print(list2)
​
# c.
# 注意4:列表中可以存储不同类型的数据
list3 = [345,'abc',True,2.4]
print(list3)
​
# d.
# 注意5:列表是可变的
list3[0] = 666
print(list3)

2.2列表元素访问

# 注意1:因为列表是有序的,所以列表可以通过索引访问元素
​
# 1.获取元素
# 语法:列表[索引]
numlist = [45,56,65,100,2,15]
print(len(numlist))  # 获取列表中元素的个数
​
"""
正数索引:0      1    2     3   4   5
负数索引:-6    -5   -4    -3  -2   -1
元素:    45    56   65   100   2  15
​
索引的取值范围:
    a.正数索引:0~len(xx) - 1
    b.负数索引:-1 ~ -len(xx)
"""
print(numlist[1])
print(numlist[-5])
​
print(numlist[-1])
print(numlist[5])
​
# 注意:访问列表中元素的时候,一定要注意索引的取值范围,如果越界,则报错IndexError
# print(numlist[10])  # IndexError: list index out of range
# print(numlist[-7])  # IndexError: list index out of range
​
# 2.修改元素
# 语法:列表[索引] = 值
print(numlist)
numlist[-1] = 33
print(numlist)

2.3列表基本操作

# 1.+:组合
l1 = [1,2,3]
l2 = [6,7,8]
print(l1 + l2)   # [1, 2, 3, 6, 7, 8]
print(l2 + l1)
print(l1)
print(l2)
​
# 2.*
print(l1 * 3)   # [1, 2, 3, 1, 2, 3, 1, 2, 3]
print(l1)
​
# 注意:+和*应用在列表中,都是生成了一个新的列表,并没有修改原列表
​
# 3.in和not in:判断指定的元素是否在指定的列表中,一般和if语句结合使用
numlist = [11,22,33]
print(11 in numlist)  # True
print(11 not in numlist)  # False
​
print(66 in numlist)  # False
print(66 not in numlist)  # True

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Chiayi_init_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值