【聪明办法学 Python】Chapter 5循环 loop

Range后面的括号为左闭右开区间,如果m为5, n为10。那么取值范围为5-9

↑这里也可以用sum函数来进行求和

↑这样会输出0-9

增加步长参数会出现等差(步长)数列

↓Reverse函数也可以实现调换括号里的前后位置

这个for x in range()的意思有点类似于让x在range这个左闭右开的区间范围里取值

↑有点类似于排列组合

 

↑注意print的时候,x和y的先后顺序

Python是兼容emoji的....

print()代表要换行(↑上面的raw应该是row打错了)

↓为什么range0没有范围

↓错误案例

0 % 3 = 0

continue会直接过此次循环接下来的内容,

↑下划线_在python里代表一个黑洞,碰到之后什么都不会被执行

质数(Prime number)是指在大于1的自然数中,除了1和它本身以外,不能被其他自然数整除的数。换句话说,质数没有除了1和它本身之外的正除数。

例如,2、3、5、7、11、13、17、19等都是质数,因为它们只能被1和它们自己整除。最小的质数是2,它也是唯一的偶数质数,因为除了2之外的所有偶数都能被2整除,所以它们不是质数。

质数在数学中有着非常重要的地位,它们是整数的基本构成元素,因为任何大于1的自然数都可以唯一地分解为质数的乘积,这被称为质因数分解。例如,,其中2、3和5都是质数。

↑第二种方式可以减少计算次数。

↓比较上述两种算法的计算快慢

Rsa算法就是和质数有一定联系的一种算法:

↓第二种算法比第一种算法提升6000倍以上

老师:提升算法的方法是“剪枝”


以下内容为补充,关于正态分布和高斯分布的部分看不太懂。以后再来看吧

最后老师做了一个符合正态分布的随机数矩阵生成

和一个符合高斯分布的东西


作业部分

第一题

最后一个部分为调用函数,如果不写的话只有输入是没有效果的。

再复习一下//和%的运算


第二题

让我们先看看本小白写的代码有多少问题...

最后正确的代码如下:

import ast

n = ast.literal_eval(input())

# 现在程序中有一个变量n

# 在这行注释下面,编写代码,输出你的答案

def checkAbs(n):

    if n < 0:

        print("-", end="")

        n = -n  

    return n

def reverseNum(n):

    reversed_n = 0

    while n > 0:

        digit = n % 10

        reversed_n = reversed_n * 10 + digit

        n = n//10

    return reversed_n

n = checkAbs(n)

n = reverseNum(n)

print(n)

(用python程序运行可视化的网站看了一下运行的顺序,对定义函数和return语句有了更深入的理解)


第三题

小知识点

当显示这段话的时候,表示有缩进的格式错误,一般为缩进不正常,导致python无法识别所写程序的正确格式,而进行进一步执行。

n_str[i] 的意思是获取字符串 n_str 中索引为 i 的字符。在 Python 中,字符串是一个字符序列,可以通过索引来访问每一个字符。索引从 0 开始,也就是说,n_str[0] 是字符串中的第一个字符,n_str[1] 是第二个字符,以此类推。

举个例子,如果 n_str"12345"

  • n_str[0] 是 '1'
  • n_str[1] 是 '2'
  • n_str[2] 是 '3'
  • n_str[3] 是 '4'
  • n_str[4] 是 '5'

所以,n_str[i] 就是获取 n_str 中第 i 个字符。这个操作在字符串遍历和字符比较时非常常用。

import ast
n = ast.literal_eval(input())
# 现在程序中有一个变量n
# 在这行注释下面,编写代码,输出你的答案

def has_consecutive_same_digits(n):
    # 将整数转换为字符串
    n_str = str(n)
    
    # 遍历字符串,检查相邻字符是否相同
    for i in range(len(n_str) - 1):
        if n_str[i] == n_str[i + 1]:
            return True
    
    # 如果没有发现相同的相邻字符,返回 False
    return False

在Python中[ ]相当于一个输入标签来索引(截图来自B站upPython与数据分析_青青)

正向索引↓(从0开始)

负向索引↓(从-0开始)

切片(代表分段取值)

[ 2:3]代表一个左闭右开区间,取位置标签为2-3,但是不包含3的内容。

[ : ]代表全取

[ 2:8:2]第三个2代表步长,默认为1

[ ::2] 代表全取,但是步长为2

第三题答案:

import ast
n = ast.literal_eval(input())
# 现在程序中有一个变量n
# 在这行注释下面,编写代码,输出你的答案
def hasConsecutiveDigits(n):
    n_str = str(n)
    for i in range(len(n_str) - 1):
        if n_str[i] == n_str[i + 1]:
            return True
    return False

n = hasConsecutiveDigits(n)
print(n)
  • 7
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值