if,一些常见问题以及随机数random

目录

if语句

一般结构

条件表达式

python的一些常见问题

随机数random

随机整数

随机浮点数

1、0-1之间的随机浮点数

2、随机浮点数:

种子



if语句

一般结构

if 判断语句:
    执行语句
elif 判断语句:
    执行语句
else:
    执行语句

说明:

1、注意用分号(不同于c语言)。

2、elif部分可以重复多次,形成多个分支;判断路径有点类似于||的短路。

3、严格的缩进,一旦格式(缩进)错误,则会出错。因为不同于c++的大括号{}分割语句块,python是通过严格的缩进来分割语句块的。

4、判断语句:不同于c语言,python允许使用1<=temp<=6这样的判断语句。

条件表达式

代码表达式为:

条件成立时执行的语句 if 条件 else 条件不成立执行的语句

 好处:将代码有多行缩减为一行(当然,如果更美观分多行书写也是可以,记得使用\或小括号 代表语句还未结束)

举例:

score=66
level=('D' if 0<=score<60 else
       'C' if 60<=score<80 else
       'B' if 80<=score<90 else
       'A' if 90<=score<=100 else
       print("请输入正确的分数。"))
#elif被分开书写为else if
#当执行语句是等号时,有如上的书写格式
print(level)



#以下是原文

score=66
if 0<=score<60
    level='D'
elif 60<=score<80
    level='C'
elif 80<=score<90
    level='B'
elif 90<=score<=100
    level='A'
else
    print("请输入正确的分数。") 
print(level)
a=3
b=4
small=a if a<b else b

笔者建议:使用一般结构。

python的一些常见问题

1、Python3 中,在一行内可以书写多个语句吗?
    可以,语句之间用分号隔开即可,不妨试试:
print(‘I love fishc’);print(‘very much!’)

2、 Python3 中,一个语句可以分成多行书写吗?

可以,一行过长的语句可以使用反斜杠或者括号分解成几行,不妨试试:

        >>>3>4 and \
        1<2 或者 >>>(3>4and1<2)

3、请问Python的 and 操作符 和C语言的 && 操作符有何不同?
   当第一个操作数为逻辑值,第二个操作数为其他类型时,执行以下规则:
a and b:在a为false(等于0)的时候,返回a,否则返回b。
a or b:在a为true(不等于0)的时候,返回a,否则返回b。
总之,and与or返回的不仅有true/false的语义,还返回了它的值。

例如:1 and 3 返回3;0 and 3 返回0

随机数random

想要生成随机数,需要使用到伪随机数生成模板random

import random

随机整数

import random #导入random模块
random.randint(1,10) #随机获取一个1<=n<=10的整数作为返回值
random.randrange(1,10) #随机获取一个1<=n<10的整数作为返回值

randint()与randrange()的区别在于

1、randint范围左右都闭,randrange左闭右开

2、random.randrange([start], stop[, step])可设置步长

        例如:random.randrange(0,7,2)生成数的范围为0,2,4,6。

注意:生成随机整数的函数的两个参数,要求右参数一定大于左参数。

随机浮点数

1、0-1之间的随机浮点数

0 <= n < 1.0

random.random() #用于生成一个0到1的随机符点数: 0 <= n < 1.0

2、随机浮点数:

random.uniform(a, b)

生成范围内的浮点数。并不要求a一定小于b。当a<b时,生成范围为a<=n<=b。

种子

之所以说random所生成的是伪随机数,是因为random所生成的随机数都是可以被重现的,,而要对伪随机数的攻击,那么就要拿到它的种子。默认情况下,random是使用当前操作系统的时间作为随机数种子。

我们可以使用random.getstate()来获取随机数种子加工之后,随机数生成器的内部状态。

简单理解就是,使用getstate获取某一时刻的种子状态,当使用一段时间的随机数后,再用setstate设置为之前获取的状态,在使用随机数就与之前产生的一样,故被称为伪随机数。

如上图,当使用x去装载状态后,获得随机数,再使用之前获得的随机数状态x去设置种子状态,从而回到之前的随机数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值