小结(易出错)

## 格式化输出 用到的字典方式
dic = {'西游记':100,"新好声音":1567}
print("西游记 %(西游记)s 新好声音 %(新好声音)s" % dic ) # 西游记 100 新好声音 1567
print("西游记 %('西游记')s 新好声音 %('新好声音)'s" % dic ) # 报错,键名,不能加引号
## 格式化输出 用到的字典方式
dic = {'西游记':100,"新好声音":1567}
print("西游记 %(西游记)s  新好声音 %(新好声音)s"  % dic )  # 西游记 100  新好声音 1567
print("西游记 %('西游记')s  新好声音 %('新好声音)'s"  % dic )  # 报错,键名,不能加引号
# 逻辑运算
# and not or
# 优先级  () > not > and > or  , 相同优先级,从左到右计算
# x or y , if x is True, return x ,othoerwise return y
# 逻辑运算 有三种情况:
# 情况一: 逻辑运算符,两边是 比较运算
result = 3 > 5 and 6 >5
print(result)
# 情况二:逻辑运算符, 两边是  数值
print( 5 or 3 )   # 5
print( 0 or 8 )   # 8
print( 3 and  13) # 13
print( 0 and  13)  # 0
# 情况三: 逻辑运算符,两边, 一边是数值,一边是比较运算
print( 5 or 6 > 3 )  # 5
print( 5 or 6 < 3 )  # 5
print( 0 or 6 > 3)   # True
print( 0 or 6 < 3)   # False
print( 6 > 3 or 15)  # True
print( 6 < 3 or 15)  # False
print( 6 > 3 and 15)  # 15
print( 6 < 3 and 15)  # False
# in, not in:
# 判断子元素是否在原字符串( 字典,列表,集合)中:
ls = [1,3,5,'alex']
print( 1 in ls )   # True
print( 'alex' in ls )  # True
print( 'aa' in ls )   # False

dic = { 'name':'chris','job':'IT'}
print( 'name' in dic )     # 对于字典,是判断 某一键,是否存在于字典中

 切片是属于 浅拷贝

1.题
  把列表中所有姓周的人的信息删掉(升级题 :此题有坑,请慎重):
  lst = [ '周老二','周星星','麻花藤','周扒皮' ]
  结果:lst = ['麻花藤']
'''
# 方法一:
# lst = [ '周老二','周星星','麻花藤','周扒皮' ]
# tmp_lst = []
# for e in lst:
#     if '周' not in e:
#         tmp_lst.append(e)
# lst = tmp_lst
# print(lst)
# 方法二:
# lst = [ '周老二','周星星','麻花藤','周扒皮' ]
# for i in range(len(lst)-1,-1,-1):   # range()方法只会执行一次,谨记
#     if '周' in lst[i]:
#         lst.pop(i)
# print(lst)
# 方法三:
# lst = [ '周老二','周星星','麻花藤','周扒皮' ]
# for i,e in enumerate(lst):  # 用到了分别赋值
#     if '周' in e:
#         lst[i] =  'delete'
# for count in range( lst.count('delete')) :
#     lst.remove('delete')
# print(lst)
# 方法四:
# for i in lst[:]:   # 切片是浅拷贝
#     if '周' == i.strip()[0]:
#         lst.remove(i)
# print(lst)

 判断一个 键 是否在字典中的语法?

dic = {0:'chris',1:'alex',2:'jiayong'}
if 0 in dic:              #判断一个键是否在字典的键中
    print("has")

判断一个 元素 是否在列表中的语法?

lis = list(range(5))
print(lis)
# if lis.index(5):     # index() :没有找到就报错
#     print(5)

if lis.count(5):
    print(5)
print(lis.count(5))  # 如果没有这个元素,返回值为0
if lis.count(4):
    print(4)

 关于列表、字典 添加元素时的注意:

list = []
# list[0] = 1  # 对于列表,不能通过索引,直接添加元素  IndexError: list assignment index out of range
dic = {}
dic['name'] = 'chris'   # 但是对于字典,可以通过key,直接增加键值对
print(dic)  #  {'name': 'chris'}

 python也有三目运算,我们知道在java中为   x ? True : False 

# pyhton的三元运算

#   x if x> y else y     如果 x > y 为真,则返回x ,否则返回y

ret = 3+5 if  5 > 3 else 9
ret2 = 3+6 if 5 < 3 else 10
print(ret)
print(ret2)

ret3 = 'abc' if 5 > 3 else [1,2,3]
ret4 = 'abc' if 5 < 3 else [1,2,3]
print(ret3)
print(ret4)

 关于切片,和代码块的补充:

if True:
    x = 15
    print(x)
print(x)      # 可见 if 语句,不是一个代码块,因为代码块有独立的作用域,代码块结束时,会释放变量

l1 = [1,2,3,4]
print(id(l1))
l2 =[1]
print(id(l2))
def func4(li):  return li[:2]    # 如果能够切片,就返回一个新列表对象,不能切片,就返回原列表

ret1 = func4(l1)
print(id(ret1))
ret2 = func4(l2)
print(id(l2))
print(func4(l1))
print(func4(l2))

 for  也有 else ,continue , break :

# 除了 while ... else ,还有 for ... else
#
# def register():
#     while 1:
#         userName = input("please input your name:").strip()
#         with open('register',encoding='utf-8') as f1:
#             for line in f1:
#                 name,password = line.strip().split("|")
#                 if userName == name:
#                     print(666)
#                     break
#             else:
#                 password = input("Please input passwrod:")
#                 with open('register',encoding='utf-8',mode='a') as f2:
#                     f2.write("
{}|{}".format(userName,password))
#                     return "success"
# register()
原文地址:https://www.cnblogs.com/chris-jia/p/9466506.html