代码改变世界

python基础笔记

2018-11-14 16:44  职业冒险家  阅读(230)  评论(0编辑  收藏  举报

---恢复内容开始---

1. 计算机是什么
基本组成:
主板+cpu+内存
cpu: 主频, 核数(16)
内存:大小(8G, 16G, 32G) 型号: DDR3, DDR4, DDR5, 主频(海盗船,玩家国度)
显卡: 显存。型号(N-GTX 1080 TI, A)。位宽 240显卡(512MB) 210 105
硬盘: 西数。希捷。日立,东芝


计算机最底层是 电子电路. 只能识别两个数 0 1

2. python的简介
解释型语言. 弱类型语言
3. 安装
4. hello world
print("你好啊. 我是周润发")
5. 变量(命名规则)
命名规则;
1. 由数字, 字母, 下划线组成
2. 不能数字开头. 更不能是纯数字
3. 不能是关键字
4. 不要太长
5. 不要用中文
6. 区分大小写
7. 要有意义
8. 驼峰和下划线命名
常量: 全部字母大写常量. 约定俗成
6. 数据类型
1. int整数. +-*/% //整除, > < >= <= !=
2. str字符串. 用',",''',""" 引起来的都是字符串 + *
3. bool 布尔值. 只有True和False两个值
7. 用户交互(input)
变量=input("提示语") 变量是字符串类型, 字符串=> 数字 => int(str)
8. if判断
最基本用法
if 条件判断:
代码块
运行流程. 当条件是真. 执行代码块

if 条件:
代码块1
else:
代码块2
执行流程: 当条件成立. 执行代码块1. 否则, 执行代码块2. 二选一

if 条件1:
代码块1
elif 条件2:
代码块2
.....
else:
代码块n
执行流程: 自行补全

s="考试"
print(s*10)
s="考试\n" 换行 规格
print(s*10)


# 1+2+3+4+5+6+7+8....+100 = ?
# count = 1
# # 准备一个变量
# sum = 0
# while count <= 100:
# # 累加到sum中
# sum = sum + count # 把sum中的值(之前运算的结果)和当前数的数相加
# count = count + 1
# print(sum)



and or not

#and or not同时存在. 先算括号, 然后算not, 然后算and , 最后算or
print(False and True)
print(False and False)
print(True and True)
print(False or True)
print(not True)
print(not not not False)
print(False and True and False)
print(" 555555555555")
#如果同时存在先算()<,>,==,not,and,or 重点
print(4>5 and 5<6 or 9>5 or 8<4 and 6>7) #F and T or T or F and F --> F or T or F -->T or F-->T
#x or y 如果 x==0,那么就是y, 否则是x
print(1 or 2)
print(2 or 3)
print(0 or 3)
print(0 or 5)
print(5 or 0)
print(0 or 3 or 4 or 6 or 0) #3
print("这是and的")
print(1 and 2)# and 与or 反的
print(2 and 3)
print(0 and 3)
print(0 and 5)
print(5 and 0)
print("-----------")
print(0 or 3 and 4 or 0 and 7 or 9)# 0 or 4 or 7 or9-->4 or 7 or 9-->4
print(3>4 and 3)# false 相当于零 true表示非零
print(2<1 and 4>6 or 3 and 4>5 or 6)# false (0)and false(0) or 3 and false(0) or 6-->0 or 0 or 6-->6
print(2<1 and 4>6 or 3 and 4<5 or 6)# false (0)and false(0) or 3 and true(非零) or 6-->0 or true or 6 -->True

s="alax和wusir经常在一起搞基"
s1=s[5:10]#wusir 是第5个数到第九个数所以截到10前边,就是顾头不顾腚
s2=s[0:4]+s[5:10]
s3=s[5:]#到尾
s4=s[:10]#从头
s5=s[-3:]# 从-3 切到结尾 默认从左往右切 输出 起搞基

#步长
#语法s【起始:结束:步长(每几个取一个)】
s="我是梅西,我很慌"
a1=s[1:5:2]#各一个去一个 输出是西
print(a1)
s2=s[1::3]#三个一组取第一个 是,慌
print(s2)
s3=s[6:2:-2]#- 表示反着来,每两个取一个 输出 很,
print(s3)
s4=s[6:2:-1] #输出:很我,西 也就是全部输出 根据顾头不顾腚 第六个是很 ,第二个是梅 但是娶不到
print(s4)

#p判断一个数字是否是小数
s="-153.83"
s=s.replace("-","")#替换掉负号
if s.isdigit(): #不匹配小数点
print("是整数数字")
else:
if s.count(".")==1 and not s.startswith(".") and not s.endswith("."):
print("是小数")
else:
print("不是小数")
 判断字符串的组成
s=input("请输入你的字符串")
diget_num=0
upper_c_num=0
lower_c_num=0
other=0
for c in s:
if c.isdigit():
diget_num+=1
elif c.isupper():
upper_c_num+=1
elif c.islower():
lower_c_num+=1
else:
other+=1
print("数字个数:",diget_num,"大写字母个数:" ,upper_c_num ,"小写字母个数:" ,lower_c_num ,"其他:",other )
 #添加整除4 的 倒叙  
lis=[]
lis1=[]
for i in range(100,9,-1):
if i % 2==0:
lis.append(i)
for a in lis:
if int(a) % 4==0:
lis1.append(a)
print(lis1)
广告的****
# lst = []
# li = ["苍老师", "东京热", "武藤兰", "波多野结衣"]
# content = input("请输入你的评论:")
# for el in li:
# if el in content:
# content = content.replace(el, "*" * len(el))
# lst.append(content)
# print(lst)

把班级学生数学考试成绩录入到一个列表中:  并求平均值.  要求:  录入的时候
要带着学生姓名和成绩, 例如: 张三_44
'''
# lst = []
# while 1:
# stu = input("请输入学生的姓名和成绩(姓名_成绩), 输入Q退出录入:")
# if stu.upper() == "Q":
# break
# lst.append(stu)
#
# # 求平均值
# sum = 0
# for el in lst:
# li = el.split("_")
# sum += int(li[1])
#
# print(sum / len(lst))
字典
for i in dic.items():
print(i) #输出 元组的形势
print(i[0])# key 的值
print(i[1])# value的值

#3### 重点  结构 或者解包

a,b=1,2
print(a) # 1
print(b)# 2

a=1,2
print(a) # (1, 2) 元组类型
print(a[0])# 1

a,b=(1,2)
print(a)# 1
print(b)# 2

# 有如下值li= [11,22,33,44,55,66,77,88,99,90],
# 将所有大于 66 的值保存至字典的第一个key中,将小于 66 的值保存至第二个key的值中。
# 即: {'k1': 大于66的所有值列表, 'k2': 小于66的所有值列表}

# li= [11,22,33,44,55,66,77,88,99,90]
# dic = {"k1":[], "k2":[]}
#
# for el in li:
# if el > 66:
# dic['k1'].append(el)
# elif el < 66:
# dic["k2"].append(el)
# else:
# pass
# print(dic)

# li= [11,22,33,44,55,66,77,88,99,90]
# dic = {}
# for el in li:
# if el > 66:
# dic.setdefault("k1", []).append(el) # 1. 新增, 2. 查询
# else:
# dic.setdefault("k2", []).append(el) # 1. 新增, 2. 查询
# print(dic)

# 4. "k:1|k1:2|k2:3|k3:4"
# s = 'k:1|k1:2|k2:3|k3:4'
# lst = s.split("|")
# dic = {}
# for el in lst:
# # print(el) # [k,1]
# k, v = el.split(":")
# dic[k] = int(v)
# print(dic)

# 6.
# goods = [{"name": "电脑", "price": 1999},
# {"name": "鼠标", "price": 10},
# {"name": "游艇", "price": 20},
# {"name": "美女", "price": 998}]
#
# for i in range(len(goods)):
# good = goods[i]
# print(i+1, good['name'], good['price'])
#
# while 1:
# content = input("请输入你要买的商品:")
# if content.upper() == "Q":
# break
# index = int(content) - 1 # 索引
# if index > len(goods) - 1 or index < 0: # 调试
# print("输入有误. 请重新输入:")
# continue
# print(goods[index]['name'], goods[index]['price'])
删除的思想  必须学会
zhubo = {"卢本伟": 999999, "冯提莫": 14000000, "陈一发儿": 15000000, "金老板": 4500}
# 1. 计算平均收益
sum = 0
for value in zhubo.values():
sum = sum + value
print(sum/len(zhubo))

avg = sum / len(zhubo) # 平均值

# 2.
# 循环的时候记录要删除的key
lst = []
for k, v in zhubo.items():
if v < avg:
lst.append(k) # 列表保存要删除的key
for el in lst: # 迭代的是列表
zhubo.pop(el) # 删的是字典
print(zhubo)


lst = ["我不是药神", "西游记", "西红柿首富", "天龙八部"]
# lst.clear() # 输出:[]

#for i in lst:
# lst.remove(i) #输出:['西游记', '天龙八部'] 删不干净 ,索引改变了 ,这是深坑。

# 字典也不能在循环的时候更改大小
dic = {"a":"123", "b":"456"}
for i in dic:
# dic.setdefault("c","56") #出错了,不能再循环改变
dic[i]="fff"
print(dic)

#fromkeys()重点的方法 神坑
a = dict.fromkeys(["jj", 'jay', 'taibai'], "sb") # 静态方法
print(a)# 输出:{'jj': 'sb', 'jay': 'sb', 'taibai': 'sb'} 根据key来建立字典

dic = {"a":"123"}
s = dic.fromkeys("王健林", "思聪" ) # 返回给你一个新字典
print(s) #输出:{'王': '思聪', '健': '思聪', '林': '思聪'}
 

#类型装换
#元组==》列表 list(tuple)
#列表==》元组 tuple(list)
#列表==》字符串 str.join(list)
#字符串==》列表 str.split()

#深拷贝
import copy
lst1 = ["超人", "七龙珠", "葫芦娃", "山中小猎人", ["金城武", "王力宏", "渣渣辉"]]
lst2=copy.deepcopy(lst1) # 把lst1扔进去进行深度拷贝 , 包括内部的所有内容进行拷贝 不会有混乱的情况 ,若是多层次用深拷贝
lst1[4].append("大洋哥")
print(lst1,lst2) #['超人', '七龙珠', '葫芦娃', '山中小猎人', ['金城武', '王力宏', '渣渣辉', '大洋哥']] ['超人', '七龙珠', '葫芦娃', '山中小猎人', ['金城武', '王力宏', '渣渣辉']]
 


---恢复内容结束---