python基础一

1.python安装

链接: 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

 

2.python数据类型

数字(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)

in or not in

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

 

你可能感兴趣的:(python学习篇)