目录
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去设置种子状态,从而回到之前的随机数。