加(+)、减(-)、乘(*)、除(/:求得完整的商,//:求得商的整数部分),取余(%)、指数(a**b = a的b次幂)
#课上Mosh老师是用10 3来举例,但是我觉得没有那么直观
#因为结果为3.3333,会担心是否四舍五入之类的
print(10 / 4)
>>>2.5
print(10 // 4)
>>>2
print(10 % 4)
>>>2
print(10 ** 4)
>>>10 000
(可以类比C语言),(一开始听到这个概念我还以为是新的没接触过的运算符,原来是一直用着的)
+=、-=、/etc
只是使代码更为简洁
和数学以及其他语言一样的优先级顺序
优先级 | 操作符 | |
---|---|---|
1 | 括号 | ( ) |
2 | 指数(幂次) | ** |
3 | 乘、除 | *、/ 或 // |
4 | 加、减 | +、- |
x = 10 + 3 * 2 ** 2
print(x)
>>>22
x = (10 + 3) * 2 ** 2
print(x)
>>>52
and
or
not
优先级从高到低是not、and、or
、>=、<、<=
==、!=
weight = int(input('Weight: '))
unit = input('(L)bs or (K)g: ')
if unit.upper() == 'L':#这个处理太棒了,我之前写这个代码的时候一直傻乎乎地用‘L’ or ‘l’来写,我真的是太傻了
converted = weight * 0.45
print(f'You are {converted} kilos')
else:
converted = weight / 0.45
print(f'You are {converted} pounds')
>>>Weight: 160
>>>(L)bs or (K)g: l
>>>You are 72.0 kilos
优先级从高到低排列:
运算符 | 描述 |
---|---|
** | 指数 |
~ + - | 按位翻转, 一元加号和减号 (最后两个的方法名为 +@ 和 -@) |
* / % // | 乘,除,取模和取整除 |
+ - | 加法减法 |
>> << | 右移,左移运算符 |
& | 位 ‘AND’ |
^ I | 位运算符 |
<= < > >= | 比较运算符 |
== != | 比较运算符 |
= %= /= //= -= += *= **= | 赋值运算符 |
is is not | 身份运算符 |
in not in | 成员运算符 |
not or and | 逻辑运算符 |
小数四舍五入为一个整数
x = 2.9
print(round(x))
>>>3
取绝对值
注意先引用库
引用整个库:import math
引用库中的xxx函数:from math import xxx
使用时用点运算(math.)
Python 3 math库官网
else可以与while或者for等循环语句搭配
当while条件不成立时,直接跳出while循环,执行else语句;如果在while里面包含break并且执行了,则else语句不执行
for循环同理
secret_number = 9
guess_count = 0
guess_limit = 3
while guess_count < guess_limit:
guess = int(input('Guess: '))
guess_count += 1
if guess == secret_number:
print('You won!')
break
else:
print('Sorry, you failed!')
>>>Guess: 1
>>>Guess: 2
>>>Guess: 3
>>>Sorry, you failed!
>>>Guess: 2
>>>Guess: 9
>>>You won!
command = ''
started = False
while 1 :
command = input('>').lower()#!!!注意还能这样用,目的是为了接下来的所有转换(.lower())不重复出现多次
if command == 'start':
if started == True:#if started:即可
print('The car is already start!')
else:
started = True
print('Car started...')
elif command == 'stop':
if started == False:#if not started:即可
print('The car is already stop!')
else:
started = False
print('Car stopped.')
elif command == 'help':
print('''
start - to start the car
stop - to stop the car
quit - to quit
''')
elif command == 'quit':
break
else:
print("I don't understand that!")
结果:
>start
Car started...
>start
The car is already start!
>stop
Car stopped.
>stop
The car is already stop!
>help
start - to start the car
stop - to stop the car
quit - to quit
>abs
I don't understand that!
>quit
command = input(’>’).lower()
!!!注意还能这样用,目的是为了接下来的所有转换(.lower())不重复出现多次
可用来遍历字符串
for item in 'Python':
print(item)
>>>
P
y
t
h
o
n
可用来遍历列表
for item in ['Python','EDA','IOT','FPGA']:
print(item)
>>>
Python
EDA
IOT
FPGA
for x in range(4):
for y in range(3):
print(f'({x},{y})')
>>>
(0,0)
(0,1)
(0,2)
(1,0)
(1,1)
(1,2)
(2,0)
(2,1)
(2,2)
(3,0)
(3,1)
(3,2)
numbers = [5, 2, 5, 2, 2]
for x_count in numbers:
output = ''
for count in range(x_count):
output += 'x'
print(output)
>>>
xxxxx
xx
xxxxx
xx
xx
**
range() 函数可创建一个整数列表,一般用在 for 循环中。
函数语法
range(start, stop[, step])
参数说明:
start: 计数从 start 开始。默认是从 0 开始。例如range(5)等价于range(0, 5);
stop: 计数到 stop 结束,但不包括 stop。例如:range(0, 5) 是[0, 1, 2, 3, 4],没有5
step:步长,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1)
实例
range(10) # 从 0 开始到 10
>>>[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
range(1, 11) # 从 1 开始到 11
>>>[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
range(0, 30, 5) # 步长为 5
>>>[0, 5, 10, 15, 20, 25]
range(0, 10, 3) # 步长为 3
>>>[0, 3, 6, 9]
range(0, -10, -1) # 负数
>>>[0, -1, -2, -3, -4, -5, -6, -7, -8, -9]
range(0)
>>>[]
range(1, 0)
>>>[]
以下是 range 在 for 中的使用,循环出runoob 的每个字母:
x = 'runoob'
for i in range(len(x)):
print(x[i])
>>>
r
u
n
o
o
b