python ,基础 (1)(小白一个)

 运行第一个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‘)  #重命名文件

原文地址:https://www.cnblogs.com/zzl-p9/p/11267531.html

时间: 2024-08-29 02:18:33

python ,基础 (1)(小白一个)的相关文章

python 基础之 模块

Python 基础之模块 一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀. 就是一个python文件中定义好了类和方法,实现了一些功能,可以被别的python文件所调用 那么如何使用一个模块呢? 当然是使用import 模块名 这个方式加载一个模块了 ,比如:import time 如果要使用模块中的类,就是: 模块名 点儿 类 比如: import modle.Teacher 那么如果模块中的方法不知道是做什么用的怎么办呢?     两种方法:    

python基础1--小结篇

如果有别的编程语言基础,python属于极好上手的一门语言.应用上,用“自取所需”来描述,最为贴切. 首先,放上一些推荐. 安装上: 1.python3.5.1(推荐官网直接下载,自带IDLE),安装不麻烦,记得增加环境变量即可 2.编辑器:sublime 其实,并没有使用很多,但是推荐的人超多 ,破解版网上很多,按资源下载即可 3.IDE: 强推 pycharm 对JetBrains软件执着的热爱  方便又美观 网上能找到找到注册码,学生用edu邮箱可以免费使用,当然,支持正版! 熟悉上: 语

scapy编写简单的ARP扫描脚本 本课程基于 Python 的 scapy 模块编写,适合有 Python 基础的同学学习,最终完成一个简单的 ARP 扫描脚本。

scapy编写简单的ARP扫描脚本 本课程基于 Python 的 scapy 模块编写,适合有 Python 基础的同学学习,最终完成一个简单的 ARP 扫描脚本.

python基础一 ------如何统计一个列表元素的频度

如何统计一个列表元素的频度 两个需求: 1,统计一个随机序列[1,2,3,4,5,6...]中的出现次数前三的元素及其次数 2,统计一片英文文章中出现次数前10 的单词 两种方法: 1,普通的for循环,结合前边 python基础一 -------如何在列表字典集合中根据条件筛选数据的内容 2,自带库 collections 的counter 方法 解决需求一,两种方法 一: 先生成一个随机的列表,通过方法一获取最大元素 获取最多元素 重点讲解第二种方法 1,先导入 from collectio

【python基础】用字典做一个小型的查询数据库

例子来源于<python基础教程>第三版,57p 该例子主要是使用字典的方式,实现一个小型的数据库,通过查询字典的键值来获取用户的信息. 本人修改了部分代码. #!/usr/bin/python3 -*- coding:utf-8 -*- # 使用字典构建一个简单的数据库 #导入模块,主要为了做异常退出 import os # 构建people字典,用来存储用户信息 people = { 'Ailce':{ 'phone': '2341', 'addr': 'Foo drive 23' },

Day6 - Python基础6 面向对象编程

Python之路,Day6 - 面向对象学习 本节内容: 面向对象编程介绍 为什么要用面向对象进行开发? 面向对象的特性:封装.继承.多态 类.方法. 引子 你现在是一家游戏公司的开发人员,现在需要你开发一款叫做<人狗大战>的游戏,你就思考呀,人狗作战,那至少需要2个角色,一个是人, 一个是狗,且人和狗都有不同的技能,比如人拿棍打狗, 狗可以咬人,怎么描述这种不同的角色和他们的功能呢? 你搜罗了自己掌握的所有技能,写出了下面的代码来描述这两个角色 1 2 3 4 5 6 7 8 9 10 11

day2抓包&amp;python基础

抓包: 为什么要抓包: 1.定位问题 2.篡改请求 3.能测试系统的其他的异常 手机抓包charles: 1.打开charles,必须保证手机和电脑是在一个局域网里面 2.手机设置代理,服务器写你电脑的ip,端口号默认是8888 https协议的抓取不到数据,安全协议,需要对应公司自己的证书导入到抓包工具才可以. 模拟弱网测试:可限速的 设置端口: soupui: 1.sopaui新建一个soap项目2.在wsdl地址这里,填上 wsdl接口的地址3.左边是请求的数据,右边是返回的数据 pyth

python基础(类、对象、包)完整的总结

python基础(类和对象.包)类和对象对象是看的见摸的着的类是模板对象需要类才能创建出来类的构成(三个部分)类的名称:类名类的属性:一组数据类的方法:允许进行操作的方法(行为)class 类名():def添加方法class Cat():def run(self):print("cat is running")xiaobai = Cat()xiaobai.run()xiaobai.name = "小白"xiaobai.age = 40类的属性属性就是变量一个类可以创

Python基础 - 多线程(上)

前面对 进程 一点认识, 通俗理解, 进程是操作系统(OS)进行资源调度分配的基本单元. 每个程序的至少就一个进程在OS中被"监控"着的哦. 然后围绕着多进程, 用消息队列共享全局变量, 守护主进程, 进程池...这一通探讨, 当然还是偏向应用的一方, 我自己偶尔工作有多任务的处理的地方, 也是优先弄多进程 (主要是公司电脑贼强, 我就要弄多进程, 就要浪费资源哈哈..). 进程 呢, 基本没用过, (爬虫除外, 之前有用 scrapy 是多线程的), 自己来手写应该是没有的. 为啥宁

linux+jmeter+python基础+抓包拦截

LINUX 一 配置jdk 环境 *需要获取root权限,或者切换为root用户 1.windows下载好,去 http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 官方网站下载jdk(linux相应版本) 2.在usr目录下创建java路径文件夹 [root bin]cd /usr mkdir java 3.将jdk-8u60-linux-x64.tar.gz放到刚才创建的文件夹下