python(二)

关系和逻辑运算符

ASCII值

定义

在键盘的核心打字区域的47个按键中的每个按键可以产生两个字符,共计94个字符,加上由空格键产生的一个字符,共计95个字符,这些字符对应的数字在32-126之间,这些数值称为这些字符的ASCII值。

注:ASCII标准给一些字符赋的值也会高于126

chr()/ord

n = 77
print(chr(n))   #打印输出ASCII值为77的单字符串
str = 'a'
print(ord(a))   #打印输出单字符串'a'的ASCII值

关系运算符

  • 按字典序排序:数字优先于大写字母,大写字母优先于小写字母,两个字符串逐个字符(从左到右)进行比较来确定哪个字符串应该优先于另一个。
  • 整型数可以与浮点数进行比较,其他不同类型的值不能进行比较,例如,字符串不能与数字进行比较。
  • 关系运算符可以用于列表或元组中。要使两个列表或两个元组相同,它们必须有相同的长度,对应位置的元素也必须是相同的值。
  • 条件的真值的判断通过依此比较对应元素值直到两个元素不同(或者不能比较)为止,或者直到其中一个序列没有元素为止
    [3,5] < [3,7]
    [3,5] < [3,5,6]
    [3,5,7] < [3,7,2]
    [7,"three",5] < [7,"two",2]

注:条件”three”==3的值为假,但条件”three”<3将会触发一个Traceback错误

in运算符

当in这种运算符用于一个列表或元组时,意味着包含关系

'b' in ['a','b'.'c']  #b是该列表的子字符串
'B' not in ('a','b','c')   #B不是该元组的子字符串

列表元素的排序

列表中的元素可以用sort方法进行比较和排序

list1.sort()

将list1改变为一个拥有相同元素的序列,但是其中的元素不管是数字还是字母都按照升序排列。

sorted函数

sort方法改变了列表中所有元素的顺序,sorted函数则返回一个新的排好序的列表

list2 = sorted(list1)    #list2会包含和list1一样的元素,但list2已经排好序

注:sort()方法不能用于赋值语句,sort没有返回值,所以list2 = list1.sort()只是在原地对数据进行重排。

逻辑运算符

and、not、or

  • 短路求值:当python遇到复合条件(cond1 and/not/or cond2)时,它会首先对cond1求值,如果cond1为假,python会认为整个复合条件为假,进而不会对cond2求值。
  • 布尔数据类型:True/False
  • 当数字作为条件时,0会被赋值为False,其他所有其他数字会被赋值为True

三种返回布尔值的方法

startwith()/endwith()
"fantastic".startwith("fan")  #fantastic以fan开头,True
"fantastic".endwith("stic")   #fantastic以stic结尾,True
"fantastic".startwith("Fan")  #False
"elephant".endwith("fant")    #False
isinstance()
isinstance("32",int)  #False "32"的数据类型是否为整形
isinstance(32,int)   #True
判断数据类型的方法

假设str1是非空字符串

  • str1.isdigit() str1的所有字符都是数字
  • str1.isalpha() str1的所有字符都是字母表上的数字
  • str1.isalnum() str1的所有字符都是字母表上的字母或数字
  • str1.isspace() str1仅含有空白字符

判断结构(分支结构)

if-else语句

if condition1:
    语句块1
else:
    语句块2

注:语句块中的每行语句必须向右缩进相同的距离,缩进代表了一个块的结束和开始(使用4个空格缩进语句块)

嵌套语句

if-else的缩进块中可以包含其他的if-else语句

if condition1:
    if condition2:
        语句块1
    else:
        语句块2
else:
    语句块3

elif子句

if condition1:
    语句块1
elif condition2:
    语句块2
elif condition3:
    语句块3
else:
    语句块4

while循环

while condition:  #循环的头部,condition被称为循环的继续条件
    循环体
  • 循环体的每次执行称为通过该循环的一轮(pass)
  • 继续条件是个布尔表达式,等于True或False
  • while循环可以用来做输入验证

break/continue

  • 当break语句执行时,循环会马上终止,跳出整个循环
  • 当continue语句执行时,当前循环终止,进行下一轮循环
    while x>10:    
      if condition:
          print("hello")
          break  #执行print("hello,world")
      else:
          print("world")
          continue  #执行while x>10
    print("hello,world")

for循环

for var in sequence:  #sequence可以是等差数列、字符串、列表、元组或是一个文件对象
    语句块

等差数列的循环遍历

range()函数

range()函数可以用来产生一个等差数列,如果m/n是整数,并且m < n,则函数range(m,n)会产生一系列整数m,m+1,m+2…..n-1

range(0,4) #0,1,2,3 可以被简写为range(4)
range(-2,3)  #-2,-1,0,1,2

注:若想输出range函数的值,可以使用print(list(range(1,5)))

for i in range(2,6):
    print(i,i*i)
输出:
2 4
3 9
4 16
5 25

range()函数的步长值

range(m,n,s)会产生整数序列m,m+s,m+2s….m + r * s,其中r是最后一个满足m + r * s< n的数。也就是说,这一序列开始于m,每一次都将m加上s,直到下一次将会产生一个数大于n,可选的n叫做range函数的步长值。

range(3,10,2)  #3,5,7,9
range(-10,10,4) #-10,-6,-2,2,6
range(6,0,-1)   #6,5,4,3,2,1

for循环的嵌套

for m in range(1,6):
    for n in range(1,6):
        print(m*n,"\t",end="")  打印横行
    print()   #打印竖列    
    #结果为一个5x5的表格

字符串的字符循环遍历

for ch in str1:
    语句块    #将会从第一个字符开始,针对字符串的每一个字符执行一遍循环体,因此这个循环会被执行len(str1)次

文本文件的行循环遍历

infile = open("filename.txt",'r')
for line in infile:
    语句块
infile.close()

pass语句

如果只是希望循环遍历一个序列而并不做任何事情,这种时候可以使用pass语句

infile = open("filename.txt",'r')
for line in infile:
    pass
print(line.rstrip())  #打印文件的最后一行
infile.close()

   转载规则


《python(二)》 fightingtree 采用 知识共享署名 4.0 国际许可协议 进行许可。
  目录