Python-Basis-2nd

周五,晴,记录生活分享点滴

参考博客:https://www.cnblogs.com/resn/p/5776403.html  

Python版本:3.5   

 

运算符

算数运算符:

+  -  *  /   //(取整除)   %(取余)    **(指数:2**3-->2的3次方)

比较运算符:

>、 <、 >=、 <=、 ==(等于:表示两个变量的值是否一样)、!=(不等于)

>>> a = 5
>>> b = 3
>>> a > b   # 检查左操作数的值是否大于右操作数的值,如果是,则条件成立。 
True
>>> a < b   # 检查左操作数的值是否小于右操作数的值,如果是,则条件成立。
False
>>> a <= b  # 检查左操作数的值是否小于或等于右操作数的值,如果是,则条件成立。
False
>>> a >= b  # 检查左操作数的值是否大于或等于右操作数的值,如果是,则条件成立。
True
>>> a == b  # 检查两个操作数的值是否相等,如果是则条件变为真。
False
>>> a != b  # 检查两个操作数的值是否相等,如果值不相等,则条件变为真。
True

 小结:关注一下最后两行,易混淆。 

赋值运算符

= 、+=、 -=、 *=、 /=、 %=、 //=、 **=

>>> num = 2    
>>> num += 1   # 等价于 num = num + 1
>>> num -= 1   # 等价于 num = num - 1
>>> num *= 1   # 等价于 num = num * 1
>>> num /= 1   # 等价于 num = num / 1
>>> num //= 1  # 等价于 num = num // 1
>>> num %= 1   # 等价于 num = num % 1
>>> num **= 2  # 等价于 num = num ** 2

逻辑运算符

not (否定/双否定)、and(交集/且)、 or(并集/或)

>>> a > b and  a < b  # 如果两个操作数都是True,那么结果为True,否则结果为False。
False
>>> a > b or  a < b  # 如果有两个操作数至少有一个为True, 那么条件变为True,否则为False。
True
>>> not a > b  # 反转操作的状态,操作数为True,则结果为False,反之则为True
False

 小结:如果not、and、or出现在同一指令中,正常顺序是从左到右,但推荐使用小括号进行先后顺序的区分。

 

最大值

思路:

  1. 输入三个数,
  2. 比较第一、二个数:如果第一个数大于第二个数,则第一个数为最大值,
  3. 将最大值同第三个数比较:如果最大值大于第三个数,则打印最大值即第一个数,反之打印第三个数,
  4. 如果2不成立,第一个数不大于第二个数,则设第二个数为最大值,
  5. 再将最大值即第二个数与第三个数相比较:如果第二个数大于第三个数,则打印最大值即第二个数,反之第三个数。
num1 = input("Num1:")
num2 = input("Num2:")
num3 = input("Num3:")

if num1>num2:
    max_num=num1
    if max_num>num3:
        print("MAX NUM is",max_num)
    else:
        print("MAX NUM is",num3)

else: 
    max_num = num2
    if max_num>num3:
        print("MAX NUM is",max_num)
    else:
        print("MAX NUM is",num3)

 小结:最大值 max_num的灵活运用,因为是三个数,按照正常运算逻辑,需要先比较其中的两个数,在与第三个数相比较。

 

表达式

运算符和操作数结合起来叫做表达式。

 

短路原则

对于and:如果前面的第一个条件为假,那么这个and前后两个条件组成的表达式 的计算结果就一定为假,第二个条件就不会被计算

对于or :如果前面的第一个条件为真,那么这个or前后两个条件组成的表达式 的计算结果就一定为真,第二个条件就不会被计算

小结:

  • 因为and是且的关系,所以前面若假则全部为假,or为或的关系,所以前面为真则全部为真
  • and、or、not 从左往右依次运行,推荐用小括号区分运行的顺序。

 

while循环

猜年龄(while版)

思路:

  1. 设置一个变量为正确的,
  2. 针对这个变量的while循环开始,
  3. 给出用户输入年龄的功能,
  4. 如果用户输入年龄正确,则打印结果(Yes),
  5. 第一个如果不成立呢(否则 如果),用户输入年龄偏大,则打印(Is bigger)结果,
  6. 前面的都不成立(否则),用户当前输入的年龄剩下最后一种可能,所输入年龄偏小,则打印(Is smaller)结果。
age = 50

flag = True

while flag :
    user_input_age = int(input("Age is :"))
    if user_input_age == age:
        print("Yes")
        flag = False
    elif user_input_age > age:
        print("Is bigger")
    else:
        print("Is smaller ")

print("End"

小结:针对猜年龄游戏,需要考虑到所有可能结果数,即大于、小于、等于三个可能,通过if、elif、else来引出。

猜年龄(while-break版)

在1)的基础上增加break命令,即如果用户输入年龄正确,则运行break命令,中断循环,打印(End)提示。

age = 50

while True:
    user_input_age = int(input("Age is :"))
    if user_input_age == age:
        print("Yes")
        break
    elif user_input_age > age:
        print("Is bigger")
    else:
        print("Is smaller")

print("End")

break的运用

break的作用: 结束循环,在死循环中,也可以通过设置一定的条件来结束循环。

num = 1

while num < 10:
    print(num)
    num += 1
    if num == 5:
        break

continue的运用

continue表示继续的含义,当运行到如果当前数字等于3时,continue指令出发,表示继续这个循环,而不输入打印结果

在if 命令不成立时,则输出打印结果。

所以打印结果为:2、4、5、6、7、8、9、10、11

num = 1

while num <=10:
    num += 1
    if num == 3:
        continue
    print(num)

 

while....else....语句

正常循环结束(无break时),执行else语句

num = 1
while num <= 10:
    num += 1
    if num == 5:
        continue
    print(num)
else:
    print("This is else statement")

 

end作用  \r \n 含义

end="__"  默认不换行,最后的结尾是下划线(__)

换行符:

  • \n (Linux系统),\r  \n  (Windows系统)  , \r  (Mac系统)
  • \n 可以在python中默认指定为换行符,这行数据最后结尾的字符,是不可见的,但是可以指定它
  • \n 同空格、制表符一样,都不可见
  • \r  是windows的回车(Enter),回车表示当前行的第一个位置,加上\n 以后会移到下一行的第一个位置
  • \n (Linux系统)移动到下一行 ,\r  (Mac系统)移动到下一行
num1 = 0

while num1<=5:
    print(num1,end="_")
    num2 = 0
    while num2<=7:
        print(num2,end="-")
        num2+=1
        
    num1+=1
    print() #print(end="\n")

 小结:

  • end="  " 为不换行标志,如果想得到横排的序列,需要输入end="  " ,
  • print() 为换行标志,如果想得到竖排的序列,需要输入print()
  • print() 即 print(end="\n") 

 

高度、宽度的自定义 

height = int(input("Height:"))
width = int(input("width:"))

num_height = 1
while num_height <= height:
    num_width =1
    while num_width <= width:
        print("#", end="")
        num_width += 1
    print()
    num_height += 1

小结:排列顺序是先从左到右,再从上到下依次排列

 

嵌套循环

矩形排列

height = int(input("Height:"))
width = int(input("width:"))

num2 = height
while num2 > 0:
    
    num1 = width
    while num1 >0:
        print("#",end="")
        num1 -= 1
    print()
    num2 -= 1

小结:

  • 大体上与8相同,
  • 其中的不同点是高度和宽度以其他变量的形式命名,易于区分;
  • while循环的条件不同,8是小于等于用户所输入的值,这个是大于0,因为这个是while循环中引用的用户所输入的值,而8中应用的是一个固定的值。

三角排列

思路:

当进行赋值后,line=5,即tmp=5,早第二个(内部)while循环中进行tmp的循环,直到tmp不大于0为止,第一行结束。

line减一,即line=4,继续tmp=4,继续进行第二个while循环。

line = 5    
while line>0:  

    tmp = line  
    
    while  tmp>0:  
        print("*",end="") 
        tmp = tmp-1   
        
    print()
    #print(line)
    line -= 1

小结:输出顺序依次是先从左到右,再从上到下排列 

九九乘法表

first = 1
while first<=9:

    sec = 1    
    while sec <= first:
        print(  str(sec)+"*"+ str(first) +"="+str(sec * first), end="\t")
        sec += 1
      
    print()
    first += 1

 小结:

  • 输出顺序依次是先从左到右,再从上到下排列
  • 结果是一个式子,打印格式以拼接的方法进行,str表示把数据转换为字符串,end=“\t”表示不换行

 

posted @ 2020-05-15 09:46  ChungZhao  阅读(179)  评论(0编辑  收藏  举报