链接: https://pan.baidu.com/s/1e24k8mnddf-5Jjakcq1d8w 提取码: qhgg 复制这段内容后打开百度网盘手机App,操作更方便哦
1,安装pycharm
2,修改host文件,加一句话
0.0.0.0 account.jetbrains.com
pycharm 修改电脑环境变量
右击电脑属性 -- 高级系统设置 -- 环境变量
首先安装好python2.x和python3.x,注意如果pycharm打开的情况安装另一版本需要重启下pytcharm,以便pycharm重新加载进去新版本
File-->settings...-->project:2-->prioject interpreter,然后选择相应的版本
修改字体
File-->settings...-->Editor-->Colors&Fonts-->Font-->点下Save As,确定,然后Size变为可编辑,调整Size的数字即可,最后点击Apply(应用),点击OK
数字(int),布尔值(bool),字符串(str),列表,元组,字典,集合
2.1
int
bool(只有两种):True False
字符串:
s = 'python学习'
s1 = s[0] #获取p
print(s1,type(s1))
s2 = s[2]
s3 = s[-1]
s4 = s[:6] #从0开始可以省略不写
s5 = s[6:9]
s6 = s[:] #从头取到位
s7 = s[-1:6:-2] #倒着取,隔一个取一个
字符串函数
isdecimal 比 isdigit更能判断数字
capitalize #首字母大写
s = 'taiwan'
s15 = s.isdigit() #字符串只能由数字组成*** 判断是否只是由数字组成
s13 = s.replace('nb','sb') #替换 *** 替换
s10 = s.startwith() *** 以什么开头
s6 = s.title() #非字母隔开的每个单词的首字母大写 ***
s7 = s.strip() #去除字符串两边的空格,换行符,制表符 ***
s8 = s.split() #默认按照空格分割,可以指定 ***
s1 = s.capitalize() #首字母大写
s2 = s.upper() #所有的字母都大写
s3 = s.lower() #所有的字母都小写
s4 = s.center(20) #居中
s5 = s.swapcase() #大小写反转
s9 = s.join() #
s11 = s.find() #通过元素找到他的索引,返回第一个,找不到返回-1
s12 = s.index() #通过元素找到他的索引,返回第一个,找不到报错
s14 = s.format() #替换
s16 = s.isalpha() #字符串只能由字母组成
s17 = s.isalnum() #字符串由字母和数字组成
s18 = s.count('f') #字算字符串某个字符出现的次数
s19 = len(s) #计算字符串的个数
s20 = s.isspace()
列表
l1 = ['taibai','laoma','just','only','py']
获取列表的索引
ret0 = l1[0]
ret1 = print(ret0,type(ret1))
ret2 = l1[-1:4:-1]
增:
l1.append('alex')
l1.appned([1,2,3])
l1.insert(1,'pan')
l1.extend('mmm') #迭代着添加
删:
pop #按照索引删除,会将删除的元素作为返回值返回
ret = l1.pop(0)
ret2 = l1.remove('wuda')
clear #清空列表
l1.clear()
del
1,按照索引删除
2,按照切片(可以按照步长)删除
3,删除整个列表
del l1[-2]
del l1[1:]
del l1[::2]
del l1
改:
注意:
这里的修改就是直接赋值
切片步长修改必须一一对应,也就是前面几个,后面几个
l1 = ['this','is','a','dog']
l1[0] = 'man'
l1[:3] = 'abc'
l1[:2] = 'asdaaa'
l1[1:4:2] = 'a'
l1[1:4:2] = 'a2'
l1[1:4:2] = [1,2,3]
查
注意:index通过元素查找索引,找到返回第一个,否则报错
for i in l1:
print(i)
l1 = ['wutai','taida','wulaoban','tait']
print(len(l1)) #获取列表的长度
print(count(l1.count('武大')))
print(l1.index(taitai))
l1.sort #从小到大排序
l1.sort()
l1.sort(reverse=True) #从大到小
l1.reverse() #反转
字典
#关于字典
#增
dic = {
'name':'alex',
'age' : 18,
}
dic['sex'] = 'man'
dic.setdefault('weight',160)
#删除
dic.pop('age','没有此键')
dic.clear()
del dic['name']
#改
dic.update(car='xiao')
dic['name'] = 'aaa'
#查
dic.get('age')
dic
数据类型之间的转化
int bool str list tuple dict
int bool str 三者转化是可以的
bool
可以与所有的数据类型进行转化
所有为空的数据类型转化为bool都为Fasle
0 ' ' [ ] ( ) None -----> Fales
str
转化为 ----> list split 分割
list -----> str join # list里面的元素都是str类型
例子:
ll = ['wusui','alex','tai']
print(' ',join(ll))
str ------> tuple(元祖) # partition
touple-----> str #join
dict ------> list #直接 list()
例子:
dic = {'name' : 'alex' ,'aget':73}
print(list(dic))
dict
dict = {'name' : 'alex','age':73}
dict['money'] = '10万'
dic = dict.fromkeys([1,2,3],'太白')
这里注意:如果你的值是一个可变的数据类型,他在内存中 是一个id
dic = dict.fromkeys('abcd',[])
dic['a'].append(666)
dic['b'].append('111')
print(dic)
ll = [11, 22, 33, 44, 55] #将此列表索引为奇数的对应元素全部删除
#方法1
del ll(1::2)
#方法2 *****循环一个列表,不要改变列表的大小,这样会影响你的结果
for index in ll:
if index % 2== 1:
ll.pop(index)
print(ll)
#方法三
new_l = []
for index in range(len(ll-1,-1,-1)):
if index % 2 == 1:
ll.pop(index)
print(ll)
dic = {'k1':'v1', 'k2':'v2', 'k3':'v3', 'name':'alex'}
#将字典中的key中含有的k元素的所有键值对删除
#方法一
for key in dic:
if 'k' in key:
dic.pop(key)
print(dic)
#方法二
ll = []
for key in dic:
if 'k' in key:
ll.append(key)
for key in ll:
dic.pop(key)
print(dic)
一.相同代码块:
1.一个文件是一个代码块
2.一个交互命令中是一个代码块
3.代码块的驻留机制目的:1,节省空间 2提升性能
4.驻留机制范围: int bool str ()空元祖
int :任意数字
str:几乎所有的字符串都符合缓存机制
同一个代码块里面,如果设置了一个变量,再设置同样的变量的时候,python先去查是否创建过这个变量,如果创建了,则直接指向这个变量,并不是同样的创建。
#demo 1
s = 'color'
print(id(s)) #获取内存地址
#demo2
i = 100
i1 = 100
print (i == i1) #True
二.不同代码块
不同代码块:小数据池
目的:同上
小数据池对象: Int bool str ()空元祖
int : -5 256
str:一定规则的字符串
不知道的方法如何去查询:
[x for x in dir(set) if not x.startswith('_')]
6 or 2>1 #输出6 如果or前面为真输出左边,否则输出右边
0 or 2>1 #输出True
5 <4 or 3 #输出3
print(0 or 3 and 4 or 2 and 0 or 9 and 7) #4
输出 1-100 内的所有奇数
for i in range(2, 100, 2): #这里写错了,range里面是逗号,不是分号
print(i)
'''
电影投票. 程序先给出⼀个⽬前正在上映的电影列表. 由⽤户给每⼀个电影投票. 最终将该⽤户投票信息公布出来 。
要求:
1,用户输入序号,进行投票。比如输入序号 1,给金瓶梅投票1。
2,每次投票成功,显示给哪部电影投票成功。
3,退出投票程序后,要显示最终每个电影的投票数。
lst = ['⾦瓶梅', '解救吾先⽣', '美国往事', '⻄⻄⾥的美丽传说'] 结果: {'⾦瓶梅': 99, '解救吴先⽣': 80, '美国往事': 6, '⻄⻄⾥的美丽传说': 23}
'''
lit = ['金瓶梅', '解救吾先生', '美国往事', '西西里']
res = {}
while 1:
news = input('请投票,摁q退出:')
for i in range(len(lit)):
if news.isdigit():
if(int(news)-1) == i:
num = res.setdefault(lit[i], 0)
num = int(num) + 1
res[lit[i]] = num
print(res)
elif news == 'q':
print('退出成功')
break
else:
print('输出错误,请重新输入')
print(res)
2
li = ['天龙八部', '骆驼祥子', '知否', '夏天']
dic = {}.fromkeys(li, 0)
while 1:
print('投票,q退出书名是写序号应当如下')
for key, val in enumerate(dic, 1):
print(str(key) + '==>' + str(val))
cho = input('请投票,摁q退出>>>>')
if cho == 'q':
print('已经退出')
break
elif int(cho) in range(1, len(li)):
name = li[int(cho) -1]
dic[name] = int(dic[name])+1
print(str(name) + ":" + str(dic[name]))
print(dic)
'''
三个点是格式化输出
'''
a, b = {'a': 1,'b': 2}
print(a)
print(b)
myname = 'xiaobai'
dic = {'myname':'xiaobai', 'size':'12' ,'age':'23'}
print(myname in dic.values())
print(myname in dic())
#set 是集合,可以去除重复元素
list = [1,2,3,4,3,2,1,2,3,4,5]
print(set(list))
集合是
os.path.join:
import os
file_path = os.path.join('a', 'static2', 'img', 'c.jpg')
print(file_path)
打印结果:a\static2\img\c.jpg