文章目录
- 算术运算符
- 优先级
- 赋值运算符
- 比较运算符
- 逻辑运算符
- 短路原则
- while循环
- 练习:
- 1. 打印九九乘法表
- 方法一
- 方法二
- 方法三
- 2. 用户输入长和宽,打印同等高宽的#号
- 3. 输出一个如下的直角三角形,用户指定输出行数;(思考:如何实现上下反转?)
- 参考源码
算术运算符
>>> 1+2  #加法
3
>>> 3-2  #减法
1
>>> 2*3  #乘法
6
>>> 5/2  #除法
2.5
>>> 5//2  #地板除也叫整除
2
>>> 9//2
4
>>> 9%2  #取余
1
>>> 2**10  #指数
1024优先级
- 指数运算法的优先级比乘除优先级高
- 可以用()来更改运算顺序
>>> 2**3*5  #先计算指数,再计算乘法
40
>>> 2+3*5
17
>>> >>> (2+3)*5  #添加括号来改变运算顺序
25
>>> ((2+3)*5)*5  #加多个括号改变运算顺序
125在Python中,统一都使用()来改变运算顺序。不像是在数学运算中可以使用中括号大括号来改变运算顺序。
赋值运算符
- 将赋值号右边的表达式的值赋给左边的变量
| 操作 | 符号 | 例 | 展开式 | 含义 | 
| 赋值 | = | a = exp | a = exp | 将右边的值赋给左边 | 
| 加 | += | a += exp | a = a+exp | 先计算出exp,然后加a,再将值赋给左边 | 
| 减 | -= | a -= exp | a = a-exp | 先计算出exp,然后减a,再将值赋给左边 | 
| 乘 | *= | a *= exp | a = a*exp | 先计算出exp,然后a乘以exp,再将值赋给左边 | 
| 除 | /= | a /= exp | a = a/exp | 先计算出exp,然后a除以exp,再将值赋给左边 | 
| 整除 | //= | a //= exp | a = a//exp | 先计算出exp,然后a整除exp,再将值赋给左边 | 
| 取模 | %= | a %= exp | a = a%exp | 先计算出exp,然后计算a%exp的模,再将值赋给左边 | 
| 指数 | **= | a **= exp | a = a**exp | 先计算出exp,然后计算a**exp的值,再将值赋给左边 | 
- 字符串与数字的转换
>>> a=input("Enter:")  #input输入的值都为字符串
Enter:55
>>> a
'55'
>>> int(a)  #int()强制转换为数字类型,没有引号
55
>>> b=15
>>> str(b)  #str()强制转换为字符串类型,有引号
'15'
>>> int(str(b))  #再强制转换为数字类型
15字符串是无法进行算数运算的,如果字符串是数字,想要进行运算,必须要先转换成整数类型
比较运算符
>>> a = 5  #一个等号为赋值
>>> b = 15
>>> a>b  #算数运算,判断a是否大于b
False  #False表示条件不成立,即a不大于b
>>> a<b
True  #True表示条件成立,即a小于b
>>> a == b  #两个等号比较值是否相等
False
>>> a != b  #不相等
True
>>> a >= b  #大于等于
False
>>> a <= b  #小于等于
True例:
a = ?  #a的值未定,判断a是否大于等于b小于等于c
b = 5
c = 15
if a >= b:
  if a <= c:
    print("True")
#下面这种写法仅Python支持
if b <= a <= c:
  print("True")逻辑运算符
- 用于处理逻辑运算
| 运算符 | 例 | 说明 | 
| and | a and b | 只有两个条件都为真时,结果才为真,否则为假 | 
| or | a or b | 只要有一个条件为真时,结果就为真,否则为假 | 
| not | not a | 即条件a的相反条件 | 
- 
not优先级最高,其次是and,or优先级最低
- 可以使用小括号来改变运算顺序
短路原则
例:
>>> not not True or False and not True
True
>>> True or True and False
True- 对于and运算,如果第一个条件为假,那么此表达式就一定为假,第二个条件不会被计算
- 对于or运算,如果第一个条件为真,那么此表达式一定为真,第二个条件不会被计算
- 一元运算符:运算符只有一个操作数,如not
- 二元运算符:运算符两边有两个操作数,如+、-、*、/等
while循环
- 条件为真时进入循环,条件为假时,不进入循环
# 第一种用法
while 条件:
  print("any")
  print("any")
# 第二种用法
while 条件:
  ...
else:
  ...while...else语句中,只有当while正常结束后,才会执行else后的语句
例1:输出100以内的偶数
num = 1
while num<= 100:
    if num%2 == 0:
        print(num)
    num += 1例2:猜年龄游戏,
age = 25
#方法一
flag = True
while flag:
    user_inpu_age = int(input("Enter Age:"))
    if user_inpu_age == age:
        print("You Are Right!")
        flag = False
    elif user_inpu_age > age:
        print("So Bigger!")
    else:
        print("So Smaller!")
print("Over!")
# 方法二
while True:
    user_inpu_age = int(input("Enter Age:"))
    if user_inpu_age == age:
        print("You Are Right!")
        break
    elif user_inpu_age > age:
        print("So Bigger!")
    else:
        print("So Smaller!")
print("Over!")- 
break 终止循环
- 
continue 跳出此次循环
例3:while…else
正常结束循环,执行else之后的语句,非正常结束,如使用break结束循环则不执行else之后的语句
num = 0
while num < 10:
    num += 1
    if num == 5:
        break  #break换成continue则会输出else后的语句
    print(num)
else:
    print("This is end!")  #是break终止了循环,所以不会执行else后的语句练习:
1. 打印九九乘法表
方法一
print(num,end="")会指定语句结束后跟定的字符,默认是换行
num1 = 1
while num1 <= 9:
    num2 = 1
    while num2 <= num1:
        print(num2,end="*")
        print(num1, end="=")
        print(num1*num2,end="\t")  #这里的\t表示制表符,可以对齐输出
        num2 += 1
    num1 += 1
    print()- 也有更简便的输出如下(可以替换上述代码中的6、7、8行):
 print('%d*%d=%d'%(num2,num1,num1*num2) ,end="\t")
- 还有一种输出表达的形式:
 pritn(str(num2)+"*"+str(num1)+"="+str(num1*num2),end="\t")
方法二
- 下面这种方法是想到用for循环来控制输出,仿照while循环写的,感觉也可以优化,但是目前还没想到怎么去改比较好。同样的输出语句也可以优化
num1 = 1
for num1 in range(1,10):
    # print(num1,end="*")
    num2 = 1
    for num2 in range(1,num1+1):
        print(num2,end="*")
        print(num1, end="=")
        print(num1*num2,end="\t")
    print()方法三
- 下面这种方法是????肉肉发给我的,能看懂,也能明白,但是目前还没有学到这几个引用。我觉得这种是最简单的,有更简的,欢迎留言
for i in range(1,10):
    for j in range(i):
        j += 1
        print('%d*%d=%d'%(i,j,i*j),end="\t")
    print()- 
range()函数中含头不含尾,例如range(1,10)取值为1-9
- 
''%d'%i即引用i的值给前面的d
2. 用户输入长和宽,打印同等高宽的#号
high = int(input("Please input high:"))
wide = int(input("Please input wide:"))
a = 1
while a <= high:  #这个while循环控制行
    b = 1
    while b <= wide:  #这里的while循环控制列
        print("#",end="")  #不换行打印#
        b += 1
    print()
    a += 13. 输出一个如下的直角三角形,用户指定输出行数;(思考:如何实现上下反转?)
*
    **
    ***
    ****Line = int(input("Please Input Line:"))
num = 1
while num <= Line:  #控制输出行
    num2 = 0
    while num2 < num:  #控制每行输出的*个数
        print("*",end=" ")  #控制输出列
        num2 += 1
    print()  #换行
    num += 1- 实现上下翻转
Line = int(input("Please Input Line:"))
num = 1
while num <= Line:
    num2 = Line
    while num2 >= num:
        print("*",end=" ")
        num2 -= 1
    print()
    num += 1参考源码
【GitHub参考源码】
以上内容均属原创,如有不详或错误,敬请指出。本文作者:  坏坏 










