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)