python ,基础 (小白一个)

Posted zzl-p9

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python ,基础 (小白一个)相关的知识,希望对你有一定的参考价值。

 


 运行第一个py文件:

python3x :python 文件路径 回车
python2x :python 文件路径 回车
区别:python2默认编码方式是ascii码. 
# -*- encoding:utf-8 -*-
python3默认utf-8
 

 

 

变量:

  就是将一些运算的中间结果暂存到内存中,以便后续代码调用。

1,必须是由数字,字母,下划线任意组成,且不能 数字开头
2,不能是python中的关键字,
3. 变量具有可描述性,

 

 常量:

  一直不变的量.
比如 π=3.1415926
BIR_OF_CHINA = 1949

 

 注释:

 

 方便自己方便他人理解代码

单行注释:#
多行注释:‘‘‘内容‘‘‘

 

 

 

 用户交互  input:

  

1,等待输入

2,将你输入的内容赋值给了前面变量。
3,input出来的数据类型全部是str

 

 

 

 基础数据类型初始:

  数字:int 1,2,6,7,type()
+ - * \ ** %取余数

 

字符串

str,python当中凡是用引号引起来的都是字符串。

可相加 :字符串的拼接
可相乘 :str * int
bool:布尔值, True false

字符串转化成数字: int(str)条件:str必须是数字组成的
数字转化成字符串:str(int)

 

 


while

while 条件:
循环体
无循循环

 

初始编码

电脑的传输,还有储存的实际都是010101010101
美国:ascii码 为了解决这个全球的文字问题
,创建了一个万国码,unicode
1个字节 表示所有的英文,特殊字符,数字等
2个字节 16位表为一个中文,不够,unicode
一个中文用四个字节表示


升级版 utf-8 一个中文 3个字节去表示。

gdk 国内使用,一个中文用两个字节,

 

中文; 9万多字,
最开始 
00000001 8位bit ==1个字节(byte)
1byte 1024byte(字节) == 1kb
1kb 1024kb == 1mb
1mb 1024mb == 1gb
1gb 1024mb == 1tb

ascii : 字母;数字;特殊字符;1个字节
8位

Unicode : 两个字节;升级32位;四个字节

utf-8: 最少一个字节;8位表示。
英文字母8位 1个字节
欧洲16位;2个字节
中文24位;3个字节

int;英文1个字节中文2个字节

 

 


运算符

 

   字符串的索引和切片

索引

取A
s = ‘ABCDLSESRF‘

s1 = [0]

#切片 #顾头不顾尾

  

取ABCD
s = ‘ABCDLSESRF‘


s3 = s[0:4]

  取ACL

s = ‘ABCDLSESRF‘ s[首:尾:步长]


s10 = s[0:5:2]

s = ‘ABCDLSESRF‘

  


倒取DCBA

s12 = s[3::-1]

s = ‘ABCDLSESRF‘

倒全取
s14 = s[::-1]

 

  

列表的增删改查

 增加 

li.append(‘**‘)
print(li)

  

 列表多次增加,p停止

whlie l:
username = input(‘>>>‘)
if username.strip().upper() ==‘Q‘:
break
else:
li.append(username)
print(li)

固定列表增加元素:insert

li.insert(4,‘**‘)
print(li)

  

列表最后:

extend
li.extend([1,2,3,])

 

  

删除 :pop

li,pop(1)	#默认删除最后一个
print(li)	#按索引去删

name = li.pop(li) #返回值
print(name,li)

  

li.remove(‘**‘)	#按元素去删 :remove
print(li)

  

li.clear() #清空:clear

print(li)

  

del li[2:]	#切片删除 :del
print(li)

  

li(0) =‘**‘ #索引去去改
print(li)

li[0:3] = [‘工人‘,‘张哥‘,‘玉哥‘,]
print(li) #切片去改

  

for i in li:
print(i) #切片去查
print(li【0:2】)

  

公共方法

l = len(li)
print(l) #	几个元素:len

num = li.count(‘**‘)
print(num) #元素出现次数:count

li.index(‘***‘)# 索引
print(li.index(‘***‘))#直接结果

  

排序

li.sort() #正向排序

li.sort(reverse=True)
print(li) #反向排序

  

反转

li.reverse()
print(li)

  

 


列表的嵌套

li = [taibai,武藤兰,昊天,[alex,egon,89],23]

print(li[1][1])#找到藤字

li[0] = li[0].copitalize()
print(li) #首字母大写,替换字符串

li[2] = li[2]replace(旭天)
print(li)
#找到昊天改成昊旭天

 

  

元祖。只读列表,可循环查询,可切片。
#儿子不能改。孙子可能可以改

tu[4][3]=[4][3].upper() #孙子改成大写

tu[4].append(‘sb‘) #在孙子里增加 sb元素

  

 

join

 

s = ‘alex‘
sl = ‘_‘.join(s)
print(sl)

  


> a_l_e_x

列表转化成字符串

s = ‘‘,join(列表)
print(s)

  

字符串转化列表用 split()
str——>list


range

for i in range(0,100)
print(i) #[1,2,3,4,...99]

for i in range(0,10,3):
print(i) #步长 [0,3,6,9,]

for i in range(10,0,-1)
print(i) #倒着来

  

 



字典

dict
#数据类型划分:可变数据类型,不可变数据类型
不可变数据类型:元祖,bool int str 可哈希
可变数据类型: list dict set 不可哈希 
dict key 必须是不可变数据类型, 可哈西
value:任意数据类型。
dict优点:二分查找去查询
储存大量的关系型数据
特点:无序的

 

 


dicl[hige] = 185    #没有键值对,添加
dicl[age] = 16    #如果有健,则值覆盖

dicl.setdefault(weight)    
#有键值对,不作任何改变,没有才添加。
dicl.setdefault(welght,150)
dicl.setdefault(name,二哥)

 

print(dicl.pop(age))      #有返回值,按键去删
 print(dicl.pop(二哥,None))    #可设置返回值

print(dicl.popitem())
#随即删除,有返回值,返回的是元祖

del dicl[namel]
del dicl
dicl.clear()    #清空字典

 

dicl[age] = 16

 dic = "name":"jin","age":18,"sex":"male"
 dic2 ="name":"alex","welght":75
 dic2.update(dic) #将原有字典的键值对覆盖添加到现有的字典

 

dicl = age:19,name:jin,sex:male,

print(dicl.keys()) #
print(dicl.values()) #
print(dicl.items()) #键值对

for i in dicl: #
print(i)
for i in dicl.values(): #
print(i)
for k,v in dicl.items(): #k,v去除括号,逗号
print(k,v) #键值对

print(dicl[name]) #

dic。get(key,None)
print(dicl.get(namel)) #防止报错

 

嵌套、

dic = 
name :[alex,wusir,taibai],
py9:
time :1213,
lenrn_money :19800,
addr :cbd,
,
age :21

dic[age] = 56 #年龄改成56岁

print(dic[name])
dic[name].append(ritian)#列表添加‘ritian’
print(dic)

dic[name][1] = dic[name][1].upper()
#把列表里的wusir改成大写
print(dic)
dic[py9][female] = 6 #py9添加女生6位

 

 


######

info = input(>>>) #ysjs123hsh122jj12
for i in info: #出现3次
if i.isalpha():
info = info.replace(i," ")
l = info.split()
print(len(l)) #打印数字符串出现次数

 

 

元素分类

有如下值,,将所有大于66的值保存至字典的第一个key中,
将小于66的值保存至即(‘k1’‘k2’)
li = [11,22,33,44,55,66,77,88,99,90,]
dic = 
l_greater = [] #大于66的所有值列表
l_less = [] #小于66的所有值列表
for i in li:
if i == 66:continue
if i > 66:
l_greater.append(i)
else :
l_less.append(i)
dic.setdefault(k1,l_greater)
dic.setdefault(k2,l_less)
print(dic)

 

 

输出商品列表,用户输入序号,显示用户选中的商品
商品 li = ["手机", "电脑", "鼠标垫", "游艇"]
要求:1:页面显示 序号 + 商品名称,如:
1手机
2电脑
。。。
2:用户输入选择的商品序号,然后打印商品名称
3:如果用户输入的商品序号有误,则提示输入有误,if 并重新输入:
4:用户输入Q,退出程序。

 

while 1:
li = ["手机", "电脑", "鼠标垫", "游艇"]
for i in li:
print(\t\t.format(li.index(i) + 1, i))
num_of_chioce = input(请输入商品序号/输入Q退出程序)
if num_of_chioce.isdigit():
num_of_chioce = int(num_of_chioce)
if num_of_chioce > 0 and num_of_chioce <= len(li):
print(li[num_of_chioce])
else:
print(请输入有效数字)
elif num_of_chioce.upper() == Q :break
else :print(请输入数字)

 

 

集合,可变的数据类型,它里面的元素必须是不可变的数据类型无序,不重复,

setl = ales,wusir,ritian,egon,barry,

增
app
 setl.add(女神)
 print(setl)
 update
 setl.update(abc)
 print(setl)
删除
 setl.pop() #随机删除,有返回值
 print(setl.pop())
 print(setl)

 setl.remove(alex) #按元素删除
 print(setl)

 setl.clear()
 print(setl) #set()

 del setl
 print(setl)

 查
 for i in setl:
 print(i)

 

 

交集
 

set1 = 1,2,3,4,5
 set2 = 4,5,6,7,8
 set3 = set1 & set2
 print(set3)

 

并集

 

set1 = 1,2,3,4,5
 set2 = 4,5,6,7,8
 print(set1|set2)

 

反交集

 set1 = 1,2,3,4,5
 set2 = 4,5,6,7,8
 print(set1^set2)

 

差集

 set1 = 1,2,3,4,5
 set2 = 4,5,6,7,8
 print(set1 - set2)

 

子集与超集

 set1 = (1,2,3)
 set2 = (1,2,3)
 print(set1 < set2) #这两个相同,都是说明set1是set2的子集

 print(set1 >set2) #这两个相同,都是说明set2是set1的超集

不可变数据类型 #set可变数据类型 #无序

 s = frozenset(barry)
 print(s,type(s))
 sl = 1,2,3
 print(sl,type(sl))

 

 

 


文件操作
    练习,txt
1,文件路径,d:\练习.txt
2,编码方式:utf—8,gdk,,,,
3,操作方式:只读,只写,追加,读写,写读。。。。
              以什么编码方式储存的文件,就以什么编码打开进行操作。

 


只读‘r‘,‘rb‘

文件操作
f = open(‘练习.py‘,mode=‘r‘,encoding=‘utf-8‘)
content = f.read()
print(content)
f.close()

 

f = open(练习.py,mode=rb,)
content = f.read()
print(content)
f.close()

 

读写
f = open(log,mode=r+,encoding=utf-8)
print(f.read())
f.write(嗯好的故事)
print(f.read())
f.close()

 

以bytes类型
f = open(log,mode=r+b,)
print(f.read())
f.write(嗯好的故事.encode(utf-8))
print(f.read())
f.close()

 



只写。w。没有此文件就会出创建文件,
f = open(log,mode=w,encoding=utf-8)
f.write(夺胎换骨刚刚)
f.close()
写读
f = open(log,mode=w+,encoding=utf-8)
f.write(夺胎换骨)
f.seek(0)
print(f.read())
f.close()
f = open(log,mode=w+b,)
f.write(夺胎换,.encode(utf-8))
f.seek(0)
print(f.read())
f.close()

 

先将源文件的内容全部清除,在写,
f = open(log,mode=w,encoding=utf-8)
f.write(君勿矜我玉可切)
f.close()

f = open(log,mode=wb)
f.write(夺胎换骨刚刚.encode(utf_8))
f.close()

 


追加

f = open(log,mode=a,encoding=utf_8)
f.write(都的味道无)
f.close()
f = open(log,mode=ab)
f.write(呵呵.encode(utf_8))
f.close()

 



功能讲解
f = open(log,mode=r+,encoding=utf-8)
content = f.read(6) #读出来的都是字符
f.seek(3)           #是按照字节定义光标的位置
print(f.tell())     #tai.ou.告诉你光标的位置
content = f.read()
print(content)
line = f.readline() #一行一行的读
line =f.readlines()     #把每一行当成列表中的一个元素,添加到lise中
for line in f:
    print(line)
f.close()


with open(‘log‘,mode=‘r+‘,encoding=‘utf-8‘)as f,\
open(‘log‘,mode=‘r+‘,encoding=‘utf-8‘)as f1:
print(f.read())
 

 


总结. 文件处理:
  打开文件
        open(‘路径’,‘打开方式’,‘指定编码方式’)
        打开方式:r,w,a,r+,w+,a+。a+b
    r+:打开文件直接写 和读完再写
    编码方式--utf-8
    操作方式:
    读
        read一次性读
        readline一行一行读
        readlines一次性读
            不知道在哪结束
            视频 图片 rb bytes 按照字节读
        for循环--最好!!
    写
        write
        光标 -- 文件指针
        seek_指定光标移动到某个位置
        tell_获取光标当前的位置
        truncate_截取文件
     关闭文件
        close

     修改文件

 

with open(姐姐.py,encoding=utf-8) as f,open(万分.py,w,encoding=utf-8) as f2:
    for line in f:
        if 荷花 in line:
            line = line.replace(荷花,梨花)
            写文件
        f2.write(line)

import os
os.remove(姐姐.py)  #删除文件
os.rename(万分.py,姐姐.py)  #重命名文件

 

以上是关于python ,基础 (小白一个)的主要内容,如果未能解决你的问题,请参考以下文章

小白学 Python(21):生成器基础

小白学 Python(16):基础数据类型(函数)(上)

小白学 Python(23):Excel 基础操作(上)

小白学 Python(13):基础数据结构(字典)(下)

零基础Python学习路线,小白的进阶之路!

小白学 Python:基础流程控制(下)