一、全部使用英文标点;
二、注意缩进!!!(Python的命);
三、变量名通常以字母、数字、下划线组成,但是不能以数字开头,且变量名是区分大小写的。Python3还支持中文字符来作为变量名了;
四、 Alt + P 快捷键:上一句代码;
五、转义字符:反斜杠\
在Python中,转义字符用于在字符串中表示那些通常具有特殊含义的字符。转义字符以反斜杠(\
)开始,后跟一个或多个字符,以表示不同的特殊字符或控制序列。以下是一些常见的Python转义字符:
\n
:换行符,将光标移动到下一行的开头。\t
:水平制表符,通常用于在文本中创建制表间隔。\\
:反斜杠本身,因为反斜杠在字符串中用作转义字符,所以要用两个反斜杠来表示一个字面上的反斜杠。\'
:单引号,用于在单引号界定的字符串中表示一个单引号字符。\"
:双引号,用于在双引号界定的字符串中表示一个双引号字符。\r
:回车符,在某些环境中,与\n
不同,但在大多数现代操作系统中,它通常与\n
一起使用(\r\n
)来表示换行。\b
:退格符,用于将光标向后移动一个位置,但它可能不会在所有环境中都有效。\f
:换页符,用于在打印或显示文本时指示打印机或屏幕移动到下一页的开始。\v
:垂直制表符,用于在文本中创建垂直的制表间隔,但它可能不如水平制表符常用。\ooo
:八进制转义序列,其中ooo
是三位八进制数,表示一个特定的字符。例如,\101
表示ASCII码中的A
。\xhh
:十六进制转义序列,其中hh
是两位十六进制数,表示一个特定的字符。例如,\x41
也表示ASCII码中的A
。\uhhhh
:Unicode字符,其中hhhh
是四个十六进制数字,表示Unicode字符集中的字符。\Uhhhhhhhh
:与\uhhhh
类似,但它使用八个十六进制数字来表示Unicode字符集中的字符,允许表示整个Unicode范围内的任何字符。
使用转义字符可以在字符串中嵌入特殊字符,这在处理文件路径、文本格式化或需要精确控制字符串内容的场景中特别有用。
以下是一些使用Python转义字符的例子:
例子 1:使用\n
进行换行
print("Hello,\nWorld!")
输出:
Hello,
World!
这里,\n
是一个换行符,它使得"Hello,"和"World!"出现在不同的行上。
例子 2:使用\\
表示反斜杠本身(使用原始字符串(raw strings))
在某些情况下,你可能不希望Python对字符串中的反斜杠进行转义处理。
方法一:这时,你可以使用原始字符串,即在字符串前面加上r
或R
。
# 原始字符串,不对反斜杠进行转义
print(r"C:\Users\Username\Documents")
输出:
C:\Users\Username\Documents
在这个例子中,r
前缀告诉Python不要对字符串中的反斜杠进行转义处理,因此输出中的反斜杠被保留了。
方法二:使用\\
表示反斜杠本身
path = "C:\\Users\\Username\\Documents"
print(path)
输出:
C:\Users\Username\Documents
在文件路径中,反斜杠
\
是一个特殊字符,用于分隔目录。但在字符串中,反斜杠也被用作转义字符。因此,为了表示一个字面上的反斜杠,我们需要使用\\,即用另一个反斜杠\去转义路径分隔符的反斜杠\,对反斜杠本身进行转义,即要显示路径分隔符的反斜杠\。
例子 3:使用\t
进行水平制表
print("Name:\tJohn Doe")
输出(具体对齐可能因环境而异):
Name: John Doe
以上例子展示了Python中不同转义字符的使用方法和效果。希望这些例子能够帮助你更好地理解Python中的转义字符。
>> _lovebaby_ = 1314
>>> _lovebaby_
1314
>>> 小甲鱼 = 666
>>> 小甲鱼
666
>>> print(小甲鱼)
666
>>> x = 3
>>> y = 5
>>> z = x
>>> x = y
>>> y = z
>>> print(x, y)
5 3
>>> x = 3
>>> y = 5
>>> x, y = y, x
>>> print(x, y)
5 3
>>> print('I love China.')
I love China.
>>> print("I love French.")
I love French.
>>> print('Let's go!')
SyntaxError: invalid syntax
>>> print("Let's go!")
Let's go!
>>> print('"Life is short, you need Python!"')
"Life is short, you need Python!"
>>> print('\"Life is short, Let's learn Python!\"')
SyntaxError: invalid syntax
>>> print('\"Life is short, Let\'s learn Python!\"')
"Life is short, Let's learn Python!"
>>> print("\"Life is short, Let\'s learn Python!\"")
"Life is short, Let's learn Python!"
>>> print("I love Python.\nI love R.")
I love Python.
I love R.
>>>
>>> print("D:\three\two\one\now")
D: hree wo\one
ow
>>> print("D:\\three\\two\\one\\now")
D:\three\two\one\now
>>> print(r"D:\three\two\one\now")
D:\three\two\one\now
>>>
>> print(" \n\
@ \n\
/ \\ \n\
* * \n\
* * * *\n")
@
/ \
* *
* * * *
>>> print(" \n
@ \n
/ \\ \n
* * \n
* * * *\n")
SyntaxError: EOL while scanning string literal
>>> print('''
@
/ \\
* *
* * * ''')
@
/ \
* *
* * *
>>> print("I love Python
SyntaxError: EOL while scanning string literal
>>> print("I love Python\nI love China")
I love Python
I love China
>>> poetry = """
面朝大海,春暖花开
从明天起,做一个幸福的人
春夏秋冬,四季如暖阳
"""
>>> print(poetry)
面朝大海,春暖花开
从明天起,做一个幸福的人
春夏秋冬,四季如暖阳
>>>
>>> # 字符串的加法和乘法
>>> 520+1314
1834
>>> '520'+'1314'
'5201314'
>>> print("我爱你三千遍"*3000)
>>> print("我爱你三千遍\n"*3000)
>>>
>>> print(r'''hello,\n
world''')
hello,\n
world
>>> print('''hello,\n
world''')
hello,
world
>>>
六、循环语句
1. while循环语句
while 条件:
如果条件为真(True)执行这里的语句
示例1: 简单循环语句
>>> while 1 < 2:
print("I love python")
I love python
I love python
I love python
I love python
I love python
I love python
I love python
I love python
I love python
I love python
I love python
I love python
I love python
I love python
I love python
I love python
I love python
I love python
I love python
I love python
I love python
I love python
I love python
I love python
I love python
I love python
I love python
I love python
I love python
I love python
I love python
I love python
...
I love python
I love python
...
此时,会一直循环下去,按“ctrl+c ”来终止循环。
对此,改进如下:
>>> counts = 3
>>> while counts > 0:
print("I love python")
counts = counts - 1
I love python
I love python
I love python
>>>
示例2: 使用循环语句改进之前设计的游戏
""" 改进用Python设计的第一个游戏 """
opportunity = 3
while opportunity > 0:
temp = input("不妨猜一下小甲鱼现在心里想的是哪个数字:")
guess = int(temp)
if guess == 8:
print("你是小甲鱼心里的蛔虫嘛?!")
print("哼,猜中了也没奖励!")
break
else:
if guess > 8:
print("大啦~")
else:
print("小啦~")
opportunity = opportunity - 1
print("游戏结束,不玩啦!")
输出1:
>>>
====== RESTART: D:\Python-3.8.10\python3.8\小甲鱼python\P07\Improved_game.py ======
不妨猜一下小甲鱼现在心里想的是哪个数字:8
你是小甲鱼心里的蛔虫嘛?!
哼,猜中了也没奖励!
游戏结束,不玩啦!
>>>
输出2:
>>>
====== RESTART: D:\Python-3.8.10\python3.8\小甲鱼python\P07\Improved_game.py ======
不妨猜一下小甲鱼现在心里想的是哪个数字:3
小啦~
不妨猜一下小甲鱼现在心里想的是哪个数字:9
大啦~
不妨猜一下小甲鱼现在心里想的是哪个数字:6
小啦~
游戏结束,不玩啦!
>>>
这里需要注意:
1. 猜对即跳出循环使用的语句:break
2. 缩进,尤其是 opportunity = opportunity -1 语句的缩进位置;
若是和 print("小啦~") 语句对齐,则代表只有当 guess < 8 时执行减1操作,那么当 输入的guess的值一直是大于8时则仍然会一直循环下去,不符合预期,如下所示:
>>>
====== RESTART: D:\Python-3.8.10\python3.8\小甲鱼python\P07\Improved_game.py ======
不妨猜一下小甲鱼现在心里想的是哪个数字:9
大啦~
不妨猜一下小甲鱼现在心里想的是哪个数字:9
大啦~
不妨猜一下小甲鱼现在心里想的是哪个数字:9
大啦~
不妨猜一下小甲鱼现在心里想的是哪个数字:9
大啦~
不妨猜一下小甲鱼现在心里想的是哪个数字:9
大啦~
不妨猜一下小甲鱼现在心里想的是哪个数字:9
大啦~
不妨猜一下小甲鱼现在心里想的是哪个数字:9
大啦~
不妨猜一下小甲鱼现在心里想的是哪个数字:9
大啦~
不妨猜一下小甲鱼现在心里想的是哪个数字:0
小啦~
不妨猜一下小甲鱼现在心里想的是哪个数字:0
小啦~
不妨猜一下小甲鱼现在心里想的是哪个数字:0
小啦~
游戏结束,不玩啦!
>>>
示例3:使用随机生成的数字来代替固定的数字8改进游戏
random
模块是Python中用于生成伪随机数的标准库。它包含了一系列函数,用于生成不同类型的随机数,比如浮点数、整数、从序列中随机选择元素等。
1. randint(a, b):生成一个指定范围内的整数,包括两端的值。
import random
x = random.randint(1, 10)
print(x)
>>> import random
>>> random.randint(1, 10)
9
>>> random.randint(1, 10)
6
>>> random.randint(1, 10)
3
>>> random.randint(1, 10)
1
>>> random.randint(1, 10)
10
>>>
2.random.setstate(state)
是 Python random
模块中的一个函数,它用于恢复随机数生成器的内部状态。这个函数允许你保存随机数生成器的当前状态(通过 random.getstate()
函数获取),并在需要的时候通过 random.setstate(state)
恢复到那个状态,从而继续生成之前中断的随机数序列。这个功能在需要精确控制随机数生成过程,或者需要在不同时间点或不同程序实例之间重现相同随机数序列时非常有用,示例如下:
>>> x = random.getstate()
>>> random.randint(1,10)
10
>>> random.randint(1,10)
10
>>> random.randint(1,10)
3
>>> random.randint(1,10)
5
>>> random.randint(1,10)
3
>>> random.randint(1,10)
10
>>> random.randint(1,10)
7
>>> random.randint(1,10)
3
>>> random.randint(1,10)
8
>>> random.setstate(x)
>>> random.randint(1,10)
10
>>> random.randint(1,10)
10
>>> random.randint(1,10)
3
>>> random.randint(1,10)
5
>>> random.randint(1,10)
3
>>> random.randint(1,10)
10
>>> random.randint(1,10)
7
>>> random.randint(1,10)
3
>>> random.randint(1,10)
8
>>>
3. 随机数种子(Random Seed)是随机数生成器(RNG)的一个起始值,它决定了随机数序列的起始点。在伪随机数生成中,随机数实际上是通过算法计算出来的,而不是真正的随机。随机数种子就是这个算法计算过程中的一个初始条件或起点。
当你设置了一个随机数种子后,每次从这个种子开始生成的随机数序列都将是相同的。这允许你在需要的时候重现(或称为“复制”)相同的随机数序列,这在调试、测试或需要可重复性的科学研究中非常有用。
在Python的random
模块中,你可以使用random.seed(a=None)
函数来设置随机数种子。如果调用时不带参数(或参数为None
),则种子将基于当前时间(或其他系统提供的随机源)。如果传递了一个具体的值作为参数,那么每次使用这个值作为种子时,生成的随机数序列都将是相同的。
下面是一个简单的例子,展示了如何使用随机数种子来重现随机数序列:
import random
# 设置随机数种子
random.seed(1)
# 生成并打印一些随机数
print(random.randint(1, 100)) # 假设输出是42
print(random.random()) # 假设输出是0.13503535585553712
# 如果现在再次运行这段代码(或者在同一程序的其他地方),输出将是相同的
# ...
# 但在不设置种子或设置不同种子的情况下,输出将不同
random.seed(2)
print(random.randint(1, 100)) # 这将是一个与上面不同的随机数
七、数字类型:整型、浮点型
>>> 1223324324422553666677/2314134255
528631526792.10205
>>> 6 / 2
3.0
>>> 0.1 + 0.2
0.30000000000000004
>>> i = 0
>>> while i < 1:
i = i + 0.1
print(i)
0.1
0.2
0.30000000000000004
0.4
0.5
0.6
0.7
0.7999999999999999
0.8999999999999999
0.9999999999999999
1.0999999999999999
>>> 0.3 == 0.1 + 0.2
False
>>> 0.3 < 0.1 + 0.2
True
>>> import decimal
>>> a = decimal.Decimal('0.1')
>>> b = decimal.Decimal('0.2')
>>> print(a + b)
0.3
>>> c = decimal.Decimal('0.3')
>>> a + b == c
True
>>> 0.00005
5e-05
>>> 1 + 2j
(1+2j)
>>> x = 1 + 2j
>>> x.real
1.0
>>> x.imag
2.0
>>> 3 // 2
1
>>> -3 // 2
-2
>>> 3 % 2
1
>>> 6 % 2
0
>>> -3 % 2
1
>>> divmod(3, 2)
(1, 1)
>>> divmod(5, 2)
(2, 1)
>>> divmod(-3, 2)
(-2, 1)
>>> abs(-520)
520
>>> x = -520
>>> abs(x)
520
>>> y = -13.14
>>> abs(y)
13.14
>>> z = 1 + 2j
>>> abs(z)
2.23606797749979
>>> int('520')
520
>>> int(3.14)
3
>>> int(9.99)
9
>>> float('3.14')
3.14
>>> float(520)
520.0
>>> float('+1e6')
1000000.0
>>> complex("1+2j")
(1+2j)
>>> comple("1 + 2j")
Traceback (most recent call last):
File "<pyshell#24>", line 1, in <module>
comple("1 + 2j")
NameError: name 'comple' is not defined
>>> pow(2, 3)
8
>>> 2 ** 3
8
>>> pow(2, -3)
0.125
>>> 2 ** -3
0.125
>>> pow(2, 3, 5)
3
>>> 2 ** 3 % 5
3
>>>
八、布尔类型
>>> bool(250)
True
>>> bool("假")
True
>>> bool("False")
True
>>> bool(False)
False
>>> bool("")
False
>>> bool(" ")
True
>>> bool(520)
True
>>> bool(0)
False
>>> bool(0.0)
False
>>> bool(0j)
False
>>> if 520 > 250:
print("520比250大")
else:
print("520不比250大!")
520比250大
>>> if bool(250):
print("250 is True")
else:
print("250 is False")
250 is True
>>> 1 == true
Traceback (most recent call last):
File "<pyshell#51>", line 1, in <module>
1 == true
NameError: name 'true' is not defined
>>> 1 == True
True
>>> 0 == False
True
>>> True + False
1
>>> True - False
1
>>> True * False
0
>>> True / False
Traceback (most recent call last):
File "<pyshell#58>", line 1, in <module>
True / False
ZeroDivisionError: division by zero
>>> False - True
-1
>>> False + True
1
九、短路逻辑和运算符优先级
优先级1-17是由低到高:
>>> 3 and 4
4
>>> 4 or 5
4
>>> "FishC" and "Love"
'Love'
>>> "FishC" or 2509
'FishC'
>>> 3 or 4
3
>>> 0 and 4
0
>>> 0 or 3
3
>>> (not 1) or (0 and 1) or (3 and 4) or (5 and 6) or (7 and 8 and 9)
4
>>> False or 0 or 4 or 6 or 9
4
>>> not 1 or 0 and 1 or 3 and 4 or 5 and 6 or 7 and 8 and 9
4
>>> 1 + 2 > 3 - 4
True
>>> not 1 < 2
False
>>> 0 or 1 and not 2
False
>>> 0 or 1 and False
False
>>> 0 or False
False
>>>
十、思维导图、流程图
一、全部使用英文标点;
二、注意缩进!!!(Python的命);
三、变量名通常以字母、数字、下划线组成,但是不能以数字开头,且变量名是区分大小写的。Python3还支持中文字符来作为变量名了;
四、 Alt + P 快捷键:上一句代码;
五、转义字符:反斜杠\
在Python中,转义字符用于在字符串中表示那些通常具有特殊含义的字符。转义字符以反斜杠(\
)开始,后跟一个或多个字符,以表示不同的特殊字符或控制序列。以下是一些常见的Python转义字符:
\n
:换行符,将光标移动到下一行的开头。\t
:水平制表符,通常用于在文本中创建制表间隔。\\
:反斜杠本身,因为反斜杠在字符串中用作转义字符,所以要用两个反斜杠来表示一个字面上的反斜杠。\'
:单引号,用于在单引号界定的字符串中表示一个单引号字符。\"
:双引号,用于在双引号界定的字符串中表示一个双引号字符。\r
:回车符,在某些环境中,与\n
不同,但在大多数现代操作系统中,它通常与\n
一起使用(\r\n
)来表示换行。\b
:退格符,用于将光标向后移动一个位置,但它可能不会在所有环境中都有效。\f
:换页符,用于在打印或显示文本时指示打印机或屏幕移动到下一页的开始。\v
:垂直制表符,用于在文本中创建垂直的制表间隔,但它可能不如水平制表符常用。\ooo
:八进制转义序列,其中ooo
是三位八进制数,表示一个特定的字符。例如,\101
表示ASCII码中的A
。\xhh
:十六进制转义序列,其中hh
是两位十六进制数,表示一个特定的字符。例如,\x41
也表示ASCII码中的A
。\uhhhh
:Unicode字符,其中hhhh
是四个十六进制数字,表示Unicode字符集中的字符。\Uhhhhhhhh
:与\uhhhh
类似,但它使用八个十六进制数字来表示Unicode字符集中的字符,允许表示整个Unicode范围内的任何字符。
使用转义字符可以在字符串中嵌入特殊字符,这在处理文件路径、文本格式化或需要精确控制字符串内容的场景中特别有用。
以下是一些使用Python转义字符的例子:
例子 1:使用\n
进行换行
print("Hello,\nWorld!")
输出:
Hello,
World!
这里,\n
是一个换行符,它使得"Hello,"和"World!"出现在不同的行上。
例子 2:使用\\
表示反斜杠本身(使用原始字符串(raw strings))
在某些情况下,你可能不希望Python对字符串中的反斜杠进行转义处理。
方法一:这时,你可以使用原始字符串,即在字符串前面加上r
或R
。
# 原始字符串,不对反斜杠进行转义
print(r"C:\Users\Username\Documents")
输出:
C:\Users\Username\Documents
在这个例子中,r
前缀告诉Python不要对字符串中的反斜杠进行转义处理,因此输出中的反斜杠被保留了。
方法二:使用\\
表示反斜杠本身
path = "C:\\Users\\Username\\Documents"
print(path)
输出:
C:\Users\Username\Documents
在文件路径中,反斜杠
\
是一个特殊字符,用于分隔目录。但在字符串中,反斜杠也被用作转义字符。因此,为了表示一个字面上的反斜杠,我们需要使用\\,即用另一个反斜杠\去转义路径分隔符的反斜杠\,对反斜杠本身进行转义,即要显示路径分隔符的反斜杠\。
例子 3:使用\t
进行水平制表
print("Name:\tJohn Doe")
输出(具体对齐可能因环境而异):
Name: John Doe
以上例子展示了Python中不同转义字符的使用方法和效果。希望这些例子能够帮助你更好地理解Python中的转义字符。
>> _lovebaby_ = 1314
>>> _lovebaby_
1314
>>> 小甲鱼 = 666
>>> 小甲鱼
666
>>> print(小甲鱼)
666
>>> x = 3
>>> y = 5
>>> z = x
>>> x = y
>>> y = z
>>> print(x, y)
5 3
>>> x = 3
>>> y = 5
>>> x, y = y, x
>>> print(x, y)
5 3
>>> print('I love China.')
I love China.
>>> print("I love French.")
I love French.
>>> print('Let's go!')
SyntaxError: invalid syntax
>>> print("Let's go!")
Let's go!
>>> print('"Life is short, you need Python!"')
"Life is short, you need Python!"
>>> print('\"Life is short, Let's learn Python!\"')
SyntaxError: invalid syntax
>>> print('\"Life is short, Let\'s learn Python!\"')
"Life is short, Let's learn Python!"
>>> print("\"Life is short, Let\'s learn Python!\"")
"Life is short, Let's learn Python!"
>>> print("I love Python.\nI love R.")
I love Python.
I love R.
>>>
>>> print("D:\three\two\one\now")
D: hree wo\one
ow
>>> print("D:\\three\\two\\one\\now")
D:\three\two\one\now
>>> print(r"D:\three\two\one\now")
D:\three\two\one\now
>>>
>> print(" \n\
@ \n\
/ \\ \n\
* * \n\
* * * *\n")
@
/ \
* *
* * * *
>>> print(" \n
@ \n
/ \\ \n
* * \n
* * * *\n")
SyntaxError: EOL while scanning string literal
>>> print('''
@
/ \\
* *
* * * ''')
@
/ \
* *
* * *
>>> print("I love Python
SyntaxError: EOL while scanning string literal
>>> print("I love Python\nI love China")
I love Python
I love China
>>> poetry = """
面朝大海,春暖花开
从明天起,做一个幸福的人
春夏秋冬,四季如暖阳
"""
>>> print(poetry)
面朝大海,春暖花开
从明天起,做一个幸福的人
春夏秋冬,四季如暖阳
>>>
>>> # 字符串的加法和乘法
>>> 520+1314
1834
>>> '520'+'1314'
'5201314'
>>> print("我爱你三千遍"*3000)
>>> print("我爱你三千遍\n"*3000)
>>>
>>> print(r'''hello,\n
world''')
hello,\n
world
>>> print('''hello,\n
world''')
hello,
world
>>>
六、循环语句
1. while循环语句
while 条件:
如果条件为真(True)执行这里的语句
示例1: 简单循环语句
>>> while 1 < 2:
print("I love python")
I love python
I love python
I love python
I love python
I love python
I love python
I love python
I love python
I love python
I love python
I love python
I love python
I love python
I love python
I love python
I love python
I love python
I love python
I love python
I love python
I love python
I love python
I love python
I love python
I love python
I love python
I love python
I love python
I love python
I love python
I love python
I love python
...
I love python
I love python
...
此时,会一直循环下去,按“ctrl+c ”来终止循环。
对此,改进如下:
>>> counts = 3
>>> while counts > 0:
print("I love python")
counts = counts - 1
I love python
I love python
I love python
>>>
示例2: 使用循环语句改进之前设计的游戏
""" 改进用Python设计的第一个游戏 """
opportunity = 3
while opportunity > 0:
temp = input("不妨猜一下小甲鱼现在心里想的是哪个数字:")
guess = int(temp)
if guess == 8:
print("你是小甲鱼心里的蛔虫嘛?!")
print("哼,猜中了也没奖励!")
break
else:
if guess > 8:
print("大啦~")
else:
print("小啦~")
opportunity = opportunity - 1
print("游戏结束,不玩啦!")
输出1:
>>>
====== RESTART: D:\Python-3.8.10\python3.8\小甲鱼python\P07\Improved_game.py ======
不妨猜一下小甲鱼现在心里想的是哪个数字:8
你是小甲鱼心里的蛔虫嘛?!
哼,猜中了也没奖励!
游戏结束,不玩啦!
>>>
输出2:
>>>
====== RESTART: D:\Python-3.8.10\python3.8\小甲鱼python\P07\Improved_game.py ======
不妨猜一下小甲鱼现在心里想的是哪个数字:3
小啦~
不妨猜一下小甲鱼现在心里想的是哪个数字:9
大啦~
不妨猜一下小甲鱼现在心里想的是哪个数字:6
小啦~
游戏结束,不玩啦!
>>>
这里需要注意:
1. 猜对即跳出循环使用的语句:break
2. 缩进,尤其是 opportunity = opportunity -1 语句的缩进位置;
若是和 print("小啦~") 语句对齐,则代表只有当 guess < 8 时执行减1操作,那么当 输入的guess的值一直是大于8时则仍然会一直循环下去,不符合预期,如下所示:
>>>
====== RESTART: D:\Python-3.8.10\python3.8\小甲鱼python\P07\Improved_game.py ======
不妨猜一下小甲鱼现在心里想的是哪个数字:9
大啦~
不妨猜一下小甲鱼现在心里想的是哪个数字:9
大啦~
不妨猜一下小甲鱼现在心里想的是哪个数字:9
大啦~
不妨猜一下小甲鱼现在心里想的是哪个数字:9
大啦~
不妨猜一下小甲鱼现在心里想的是哪个数字:9
大啦~
不妨猜一下小甲鱼现在心里想的是哪个数字:9
大啦~
不妨猜一下小甲鱼现在心里想的是哪个数字:9
大啦~
不妨猜一下小甲鱼现在心里想的是哪个数字:9
大啦~
不妨猜一下小甲鱼现在心里想的是哪个数字:0
小啦~
不妨猜一下小甲鱼现在心里想的是哪个数字:0
小啦~
不妨猜一下小甲鱼现在心里想的是哪个数字:0
小啦~
游戏结束,不玩啦!
>>>
示例3:使用随机生成的数字来代替固定的数字8改进游戏
random
模块是Python中用于生成伪随机数的标准库。它包含了一系列函数,用于生成不同类型的随机数,比如浮点数、整数、从序列中随机选择元素等。
1. randint(a, b):生成一个指定范围内的整数,包括两端的值。
import random
x = random.randint(1, 10)
print(x)
>>> import random
>>> random.randint(1, 10)
9
>>> random.randint(1, 10)
6
>>> random.randint(1, 10)
3
>>> random.randint(1, 10)
1
>>> random.randint(1, 10)
10
>>>
2.random.setstate(state)
是 Python random
模块中的一个函数,它用于恢复随机数生成器的内部状态。这个函数允许你保存随机数生成器的当前状态(通过 random.getstate()
函数获取),并在需要的时候通过 random.setstate(state)
恢复到那个状态,从而继续生成之前中断的随机数序列。这个功能在需要精确控制随机数生成过程,或者需要在不同时间点或不同程序实例之间重现相同随机数序列时非常有用,示例如下:
>>> x = random.getstate()
>>> random.randint(1,10)
10
>>> random.randint(1,10)
10
>>> random.randint(1,10)
3
>>> random.randint(1,10)
5
>>> random.randint(1,10)
3
>>> random.randint(1,10)
10
>>> random.randint(1,10)
7
>>> random.randint(1,10)
3
>>> random.randint(1,10)
8
>>> random.setstate(x)
>>> random.randint(1,10)
10
>>> random.randint(1,10)
10
>>> random.randint(1,10)
3
>>> random.randint(1,10)
5
>>> random.randint(1,10)
3
>>> random.randint(1,10)
10
>>> random.randint(1,10)
7
>>> random.randint(1,10)
3
>>> random.randint(1,10)
8
>>>
3. 随机数种子(Random Seed)是随机数生成器(RNG)的一个起始值,它决定了随机数序列的起始点。在伪随机数生成中,随机数实际上是通过算法计算出来的,而不是真正的随机。随机数种子就是这个算法计算过程中的一个初始条件或起点。
当你设置了一个随机数种子后,每次从这个种子开始生成的随机数序列都将是相同的。这允许你在需要的时候重现(或称为“复制”)相同的随机数序列,这在调试、测试或需要可重复性的科学研究中非常有用。
在Python的random
模块中,你可以使用random.seed(a=None)
函数来设置随机数种子。如果调用时不带参数(或参数为None
),则种子将基于当前时间(或其他系统提供的随机源)。如果传递了一个具体的值作为参数,那么每次使用这个值作为种子时,生成的随机数序列都将是相同的。
下面是一个简单的例子,展示了如何使用随机数种子来重现随机数序列:
import random
# 设置随机数种子
random.seed(1)
# 生成并打印一些随机数
print(random.randint(1, 100)) # 假设输出是42
print(random.random()) # 假设输出是0.13503535585553712
# 如果现在再次运行这段代码(或者在同一程序的其他地方),输出将是相同的
# ...
# 但在不设置种子或设置不同种子的情况下,输出将不同
random.seed(2)
print(random.randint(1, 100)) # 这将是一个与上面不同的随机数
七、数字类型:整型、浮点型
>>> 1223324324422553666677/2314134255
528631526792.10205
>>> 6 / 2
3.0
>>> 0.1 + 0.2
0.30000000000000004
>>> i = 0
>>> while i < 1:
i = i + 0.1
print(i)
0.1
0.2
0.30000000000000004
0.4
0.5
0.6
0.7
0.7999999999999999
0.8999999999999999
0.9999999999999999
1.0999999999999999
>>> 0.3 == 0.1 + 0.2
False
>>> 0.3 < 0.1 + 0.2
True
>>> import decimal
>>> a = decimal.Decimal('0.1')
>>> b = decimal.Decimal('0.2')
>>> print(a + b)
0.3
>>> c = decimal.Decimal('0.3')
>>> a + b == c
True
>>> 0.00005
5e-05
>>> 1 + 2j
(1+2j)
>>> x = 1 + 2j
>>> x.real
1.0
>>> x.imag
2.0
>>> 3 // 2
1
>>> -3 // 2
-2
>>> 3 % 2
1
>>> 6 % 2
0
>>> -3 % 2
1
>>> divmod(3, 2)
(1, 1)
>>> divmod(5, 2)
(2, 1)
>>> divmod(-3, 2)
(-2, 1)
>>> abs(-520)
520
>>> x = -520
>>> abs(x)
520
>>> y = -13.14
>>> abs(y)
13.14
>>> z = 1 + 2j
>>> abs(z)
2.23606797749979
>>> int('520')
520
>>> int(3.14)
3
>>> int(9.99)
9
>>> float('3.14')
3.14
>>> float(520)
520.0
>>> float('+1e6')
1000000.0
>>> complex("1+2j")
(1+2j)
>>> comple("1 + 2j")
Traceback (most recent call last):
File "<pyshell#24>", line 1, in <module>
comple("1 + 2j")
NameError: name 'comple' is not defined
>>> pow(2, 3)
8
>>> 2 ** 3
8
>>> pow(2, -3)
0.125
>>> 2 ** -3
0.125
>>> pow(2, 3, 5)
3
>>> 2 ** 3 % 5
3
>>>
八、布尔类型
>>> bool(250)
True
>>> bool("假")
True
>>> bool("False")
True
>>> bool(False)
False
>>> bool("")
False
>>> bool(" ")
True
>>> bool(520)
True
>>> bool(0)
False
>>> bool(0.0)
False
>>> bool(0j)
False
>>> if 520 > 250:
print("520比250大")
else:
print("520不比250大!")
520比250大
>>> if bool(250):
print("250 is True")
else:
print("250 is False")
250 is True
>>> 1 == true
Traceback (most recent call last):
File "<pyshell#51>", line 1, in <module>
1 == true
NameError: name 'true' is not defined
>>> 1 == True
True
>>> 0 == False
True
>>> True + False
1
>>> True - False
1
>>> True * False
0
>>> True / False
Traceback (most recent call last):
File "<pyshell#58>", line 1, in <module>
True / False
ZeroDivisionError: division by zero
>>> False - True
-1
>>> False + True
1
九、短路逻辑和运算符优先级
优先级1-17是由低到高:
>>> 3 and 4
4
>>> 4 or 5
4
>>> "FishC" and "Love"
'Love'
>>> "FishC" or 2509
'FishC'
>>> 3 or 4
3
>>> 0 and 4
0
>>> 0 or 3
3
>>> (not 1) or (0 and 1) or (3 and 4) or (5 and 6) or (7 and 8 and 9)
4
>>> False or 0 or 4 or 6 or 9
4
>>> not 1 or 0 and 1 or 3 and 4 or 5 and 6 or 7 and 8 and 9
4
>>> 1 + 2 > 3 - 4
True
>>> not 1 < 2
False
>>> 0 or 1 and not 2
False
>>> 0 or 1 and False
False
>>> 0 or False
False
>>>
十、思维导图、流程图