1.while 循环是可变循环 for循环是不可变循环
2.不同的数据类型使用场景:
int:1,2,3 一般用于计算
bool: True False 做判断
str: 存少量数据 'aa' 'bb' '中二' “123,13,33,使命”
list:存大量数据[1,2,3,''aa,'bb',[22,33,'aa'],(1m,2m,3m)]
tuple元祖:只读 (1,2,3,) 只存一个需要加,
dict:{key:value} 关系
集合:一般不使用
3.format三种玩法 格式化输出
s1 = "我是{} 今年{} 爱好{} 再说次我叫{}".format("波波", 30, "广", "波波") print(s1) name = "黑sir" s2 = "我是{} 今年{} 爱好{} 再说次我叫{}".format(name, 30, "广", name) print(s2) s3 = "我是{0} 今年{1} 爱好{2} 再说次我叫{0}".format(name, 30, "广") print(s3)
4.相关练习
# 1. 使用while循环 输出 123456 8910 count = 0 while count<10: count += 1 if count == 7: pass else: print(count) # 2. 求 1-100 所有数的和 print(sum(range(1,100))) # 3.输出1-100内所有奇数 list1 = [i for i in range(1, 100) if i%2==1 ] print(list1) # 4. 输出1-100内所有偶数 list2 = [ i for i in range(1, 100) if i%2==0] print(list2) # 5. 求 1+2+...+99的所有数的和 n = 1 sum = 0 while n<100: sum+=n n+=1 print(sum)
# 6.用户登录(三次机会重试)
count = 0
while count<3:
username = input("请输入用户名:")
password = input("请输入密码:")
if username == 'admin' and password == '123':
print("输入正确")
break
else:
print("请重试,用户名或者密码错误, 还有%d次机会" % (2-count))
if (2-count) == 0:
result = input("还想再试试?Yes")
if result == 'Yes':
count = 0
continue
count+=1
else:
print("没机会了")
5.# 列表增删改查 、嵌套
# 增 li = ['b', 'aa'] while 1: name = input(">>>") if name.strip().upper() == "Q": break else: # 追加到最后 li.append(name) # 索引位置 插入 li.insert(2, 'qiqii') # 迭代插入 li.extend("678") li.extend([3,4,5]) print(li) # 删 value = li.pop(-1) # pop返回删除的值,默认删最后一个 print(value, li) li.remove('5') del li[4] # 清空所有列表 li.clear() li = [] del li # 切片删除 del li[1:3] # 改 li[0] = 'erge' li[0] = [1,2,3] li[0:2] = 'i' li[0:2] = 'isanme' # 查 切片 for循环 省略 # list公共方法 len(li) sum(li) li.count('4') li.index('4', 0, 3) li.sort() # 升序 li.sort(reverse=True) # 降序 reversed(li) # 翻转 # 算法排序 面试常考 # 循环打印列表 li2 = [1,2,3,['alex', 1, 4, 'sam'],77,8] for i in li2: if type(i) == type(list): for j in list: print(j) else:print(i)
6.# 元祖操作 只读列表 只能查 可循环查询 可切片 儿子不能变 孙子可以变
t = (1,2,'33', [11,22,33,'alex']) t[3].append('sam') print(t) s = 'abc;' s1 = ' '.join(s) print(s1) # 字符串的join 和 split 相反 字符串转列表 用split 列表转字符串用join list = ['a','b',1,2] sli = '+++'.join(list) print(sli) # range()
7.# dict增删改查 嵌套
数据类型划分:可变数据类型和 不可变数据类型
不可变数据类型:元祖 bool int str 可哈希
可变数据类型: list set dict 不可哈希
dict 字典中:key 必须是不可变数据类型, 可哈希,按照哈希排序, value 可以是任意数据类型,字典的查找速度较快
dict优点:
二分查找去查询 可存储大量的关系型数据
python3.5前的版本都是无序的
d = {'aaa':'111',2:'333',(66,77):55, True:'123', 'name':[1,2,3]} # 增 d['age'] = 18 #有存在的替换覆盖 不存在则增加 d.setdefault('sex','female') # 有存在的不替换 print(d) # 删 print(d.pop('name')) d.pop('aaa', None) d.popitem() # 随机删除 有返回值 d.clear() del d # 改 f2 = {'name':'bb','hobby':'piano'} # d 更新到 f2 覆盖已存在的 增加不存在的 其他不变 f2.update(d) # 查 for k,v in d.items(): print(k, v) for k in d.keys(): print(k) for v in d.values(): print(v) print(d.get('age')) # 用get取 没有Key也不会报错 print(d.get('age', '没有这个值')) # 用get取 没有Key也不会报错,可以指定错误提示语
安知我所命也。初心不改,默默耕耘