Python基础三玄

、可变类型和不可变类型                                                              

1.可变类型

#在id不变的情况下,value可以变,则称为可变类型,如列表,字典

l1 = [1,2,3,4]
t1 = (1,2,3,4)
print(id(l1))
l1[1] = 33333333333333333333333
print(id(l1))
info = {'name':'张小三'}
print(id(info))
info['name'] = '李四'
print(id(info))

》》

36500304

36500304

6410768

6410768

》》

2. 不可变类型:

#value一旦改变,id也改变,则称为不可变类型(id变,意味着创建了新的内存空间)

如:整数,浮点数,字符串

# a = 10

# print(id(a))

# a = 100

# print(id(a))

其id前后不同

引申】:

元组,集合

a = (1,2,3,4)
print(id(a))
b = (1,2,3,4)
print(id(b))

s1 = {1,2,3,4}
print(id(s1))
s2 = {1,2,3,4}
print(id(s2))

》》

7709728

7709872     #同值的变量id却不同

6223672

6223552

》》

但是添加字典的值,id可不变:

s1 = {1,2,3,4}
print(id(s1))
s1.add('a')
print(s1)
print(id(s1))

》》

6486056

{1, 2, 3, 4, 'a'}

6486056

》》

二:内置函数(len,in,not in)                                              

1.len统计长度

# a = {'name':'程泽宇', 'age':23}

# print(len(a))

2.In及not in

in :在....里面,有则true,无则false

# print('e' in 'hello')

not in :不在.....里面,没有则true,有则false

# print('e' not in 'hello')

 

、基本运算符                                                                    

、比较运算符                                                                             

、赋值运算符                                                                            

、身份运算符                                                                            

is和==的区别

#is是判断内存地址
#==是判断变量值
#一个内存地址可以对应多个变量,一个变量只能对应一个内存地址

a =10
b =10.0
print(a==b)
print(a is b)
print(id(a))
print(id(b))

》》

True

False

505359648

6504192

》》

、流程控制if...else....                                                                  

1.语法

if 条件语句

执行的代码块

else:

执行的代码块

2.额外

a = {}
# 当a为None,0,空 三种情况时为假,其余都为真
if a:
    print('真')
else:
    print('假')

》》

》》

、逻辑运算符                                                                       

练习:

#1.定义布尔型变量 has_ticket 表示是否有车票

#2.定义整形变量 knife_length 表示刀的长度,单位:厘米

#3.首先检查是否有车票,如果有,才允许进行安检

#4.安检时,需要检查刀的长度,判断是否超过20厘米

#   如果超过20厘米,提示刀子的长度,不允许上车

#   如果不超过20厘米,按键通过

#5.如果没有车票,不允许进门

ticket = input('请问您是否有车票:(1:有,2:无):')
if ticket=='1':
    nife = input('您的随身刀具长度为:')
    if  nife <='20':
        print('请上车,一路平安')
    else:
        print('刀具过长,请处理之后再上车')
else:
    print('请购买车票再来')

、流程控制之while                                                                 

while 条件:

# 循环体

# 如果条件为真,那么循环体则执行,执行完毕后再次循环,重新判断条件。。。

# 如果条件为假,那么循环体不执行,循环终止

1. 打印0到4的数字

i = 0
while i < 5:
    print(i)
    i+=1

2.打印0到10之间的偶数

方案一:

i =0
while i <11:
    print(i)
    i+=2

方案二:

i =0
while i < 11:
    if i % 2 == 0:
        print(i)
    i+=1

3.死循环

除了0,None,空这几个假量,其他的几乎都可以作死循环条件

如:

while 1:
    print('循环到底')

4.while....else...

count = 0
while count <= 3 :
    count += 1
    print("hehe",count)
else:
    print("循环已执行完")

》》

hehe 1

hehe 2

hehe 3

hehe 4

循环已执行完

》》

5.pass,continue,break使用

continue跳过本次循环进入下一次循环】:

count = 0
while count <= 4 :
    count += 1
    if count==3:
        continue
    print("hehe",count)

》》

hehe 1

hehe 2

hehe 4

hehe 5

》》

breck跳出整个循环体

count = 0
while count <= 4 :
    count += 1
    if count==3:
        break
    print("hehe",count)

》》

hehe 1

hehe 2

》》

pass是仅用来占位的,一般作补全语境用

count = 0
while count <= 3 :
    count += 1
    if count==3:
        pass     #触发条件不作任何处理
    print("hehe",count)

》》

hehe 1

hehe 2

hehe 3

hehe 4

》》

6.猜拳游戏

import random    #‘import’:调用模块;‘random’:随机数
win =0
fault=0
balance=0
while True:
    com = random.choice(['1', '2', '3'])  # 1:石头,2:剪刀,3:布
    print('——————欢迎来到猜拳大赛——————')
    sum = input('请输入 ——1:石头,2:剪刀,3:布, 4:结束游戏    :')
    print(com)
    #赢
    if (sum=='1'and com=='2') or (sum=='2'and com=='3') or (sum=='3' and com=='1'):
        print('流弊,你赢了!')
        win+=1
    #败
    elif (sum=='1'and com=='3') or (sum=='2'and com=='1') or (sum=='3'and com=='2'):
        print('犹豫,就会败北!')
        fault+=1
    #平
    elif (sum==com):
        print('你瞅啥,平局!')
        balance+=1
    elif sum=='4':
        print('胜:%s  败:%s 平:%s' %(win,fault,balance))
        break
    else:
        print('请输入正确数字')

十.流程控制之for循环                                                    

1 迭代式循环:for,语法如下

  for i in range(10):

    缩进的代码块

【列出1至10间的奇数

for i in range(1,10,2):     #取1至10间,步长为2的数
    print(i)

>>

1

3

5

7

9

>>

【例1】

a = {'name':'张小三','age':23}
for i in a:
    print(i)
for i in a.items():
    print(i)
for i,k in a.items():
    print(i,k)

>>

name

age

('name', '张小三')

('age', 23)

name 张小三

age 23

>>

2 break与continue(同上while

十一:文件

1.文件操作

在桌面上创建test.txt文本并写入值:

在python中打开此文件:

将文件的路径复制粘贴如下

file = open('C:\Users\Administrator\Desktop\test.txt','r',encoding='utf-8')

#open:打开文件,内接文件路径;

#后接‘r’或‘w’或‘a’,encoding='utf-8':表示以‘utf-8’转码来进行读或写或添加操作,有些电脑是‘gbk’转码

#或者直接接rbwbab,分别表示:以二进制形式读,写,添加操作

#这里有一个报错,因为‘\U’在Python里是有特殊含义的,需改正如下三种:

file = open('C:/Users/Administrator/Desktop/test.txt','r',encoding='utf-8')    #将‘\’变‘/’
file = open('C:\\Users\\Administrator\\Desktop\\test.txt','r',encoding='utf-8')    #多加一个‘\’
file = open(r'C:\Users\Administrator\Desktop\test.txt','r',encoding='utf-8')    #在引号前面加一个‘r’,强烈推荐

#这里要注意字符编码,秉承一个原则就不会出现乱码(用什么方式写的,就用什么方式打开)

2.读‘r’及‘rb’:

正常分三步:

file = open(r'C:\Users\Administrator\Desktop\test.txt','r',encoding=utf-8)   #打开文件
file.read()    #读或写操作
f.close()    #关闭文件,若不关闭,当查看文件过多时,会大量占用内存

总是关闭很繁琐,有简单的,在前面加‘with’即可自动关闭:

with open(r'C:\Users\Administrator\Desktop\test.txt','r',encoding='gbk') as f:

a=f.read()
    print(a)    #查看文件为原文件内容

当将‘r’改为‘rb’,查看的文件就是一堆字节码

with open(r'C:\Users\Administrator\Desktop\test.txt','rb') as f:

a=f.read()
    print(a)

【拓展】

with open(r'C:\Users\Administrator\Desktop\test.txt','r',encoding='gbk') as f:
    data = f.read(3)    #只读3个字符
    print(data)
    data = f.readline()    #读一整行
    print(data)

》》

2介绍

之后的进行只对金额:

》》

data = f.readlines()    #把内容转化成列表的形式
    print(data)

for i in data:
    print(i)    #会以每行输出

# res = f.readable()    #是否可读,判断为布尔类型

3.写。‘w’及‘wb’

在桌面新建一个空txt文件

with open(r'C:\Users\Administrator\Desktop\test1.txt','w',encoding='gbk') as f:
    f.write('你好,世界网')

查看:

with open(r'C:\Users\Administrator\Desktop\test1.txt','wb',) as f:
    f.write(b'holle,world')    #需要加‘b’,来转码写入

#    f.write(b'你好,中国')    #这个报错是因为二进制只支持ASCII码,不支持中文
查看:

【note】:这个写操作会覆盖掉源文件内容

补:

# res = f.writable()#是否可写

4.追加:‘a’,‘ab’

‘a’和‘ab’的区别与读写类似

with open(r'C:\Users\Administrator\Desktop\test.txt','a',encoding='gbk') as f:
    f.write('回手掏')    #只追加在末尾而不覆盖

f.writelines(['最','后','一','行'])    #把列表的元素添加到文档中

f.write('1111\n222\n')    #针对文本模式的写,需要自己写换行符

5.光标

f.seek(0,0)    #等价于f.seek(0),代表把光标移动到开头

【注】seek只在字节上移动光标,不移字符

 

f.seek(2,1)    #代表在相对位置移动2个字节(1代表光标的相对位置,2代表在相对位置上把光标向后移动2个字节)

f.seek(-3,2)    #代表在末尾往前移动3个字节(2代表把光标移动到末尾,-3代表把光标向前移动3个字节)

f.read(3)    #若是utf-8模式则代表读取3个字符,若是bites模式下则代表读取三个字节(意思是光标在第三个字节后面)

【光标位置移动】

#光标的移动模式  0:顶头  1:相对位置   2:末尾位置

#1和2只能在bytes(字节)模式下去运行(0,1)  (0,2)除外

#utf8中一个汉字3个字节,生僻字占的更多gbk模式中一个汉字占2个字节

# f.seek(3,0)    #3代表字节

【例】

with open(r'C:\Users\Administrator\Desktop\test.txt','rb') as f:
    f.seek(26,0)
    a =f.read(4)
    print(a.decode('gbk'))
    f.seek(2,1)
    a =f.read(6)
    print(a.decode('gbk'))
    f.seek(-4,2)
    a =f.read(4)
    print(a.decode('gbk'))

》》

pyth

的创始

一行

》》

————————————————————————————分割线——————————————————————————

转载于:https://www.cnblogs.com/feige2L/p/10951385.html

末学者笔记--Python基础三玄相关推荐

  1. 【笔记】Python学习(廖雪峰)笔记①——Python基础知识

    Python学习(廖雪峰)笔记①--Python基础知识 Python 基础知识 字符串与编码 ASCII.Unicode.UTF-8 Python字符串 格式化 使用list和tuple list( ...

  2. 数学分析笔记—python基础语法

    文章目录 1.Python基础语法思维导图 2.补充:python变量的关键字 3.补充:python常用数据类型转换 4.补充:print的格式化输出 1.Python基础语法思维导图 2.补充:p ...

  3. python学习笔记---Python基础【廖雪峰】

    Python基础 数据类型和变量 整数 对于很大的数,例如10000000000,很难数清楚0的个数.Python允许在数字中间以_分隔,因此,写成10_000_000_000和10000000000 ...

  4. 爬虫学习笔记-python基础+urllib

    目录 一.Python基础知识回顾 1.pip下载源 2.pycharm设置作者信息 3.python注释 4.变量 4.1 类型转换 4.2 字符串函数 find函数 startswith和ends ...

  5. python与数据思维基础笔记_Python小课笔记--Python基础:数据和函数(二)

    截图来自Python小课 文|仟樱雪 在Python小课-1-2节中,已经学习了基础模块--数据--数据类型(整数.字符串),以及基础模块--变量,基础模块--函数(input函数.print函数). ...

  6. (课程学习笔记)Python基础学习

    1.python概述和环境 1.1python安装目录的介绍 DLLS:python的动态链接库,跟编译器有关,和python编程关系不大 Doc:python的参考书,有很多实例 Lib:这个库很重 ...

  7. python编程入门到实践笔记-python基础(《Python编程:从入门到实践》读书笔记)...

    注: 本文的大部分代码示例来自书籍<Python编程:从入门到实践>. 一.变量: 命名: (1)变量名只能包含字母.数字和下划线.变量名可以字母或下划线打头,但不能以数字打头 (2)变量 ...

  8. 懒人笔记—python基础语法1

    课程来源:马士兵教育-杨淑娟 1.二进制与字符编码 计算机只认识0和1,于是就产生了ASCII码表,告诉计算机某个字符应该用什么二进制数表示. 8位为一个字节,8bit(位) = 1byte(字节), ...

  9. 学习笔记~~~~~python基础

    break使用

  10. 读书笔记--Python基础教程 001

    name = raw_input('please enter your name: ') or '<unknown>' 换句话说,如果raw_input语句的返回值为真(不是空字符串),那 ...

最新文章

  1. Python生成随机五位数——模仿手机验证码
  2. linux系统qt中make安装,Linux系统下Qt的基本安装和配置
  3. 【赠书】快速入门自动机器学习!自动机器学习(AutoML):方法、系统与挑战 图书赠送!...
  4. SDNU 1048.石子合并2(区间dp)
  5. Java BigDecimal negate()方法与示例
  6. 计算机批处理英语,英语计算机词汇大全
  7. This content should also be served over HTTPS
  8. 百度地图API V2.0 离线版本
  9. 10个超漂亮的CSS 3D特效
  10. CSDN的C币获得方法
  11. GhostNet: More Features from Cheap Operations
  12. apache SSI
  13. ERROR:Session/line number was not unique in database. History logging moved to new session.
  14. 有关于采集 负电压的一二事,STM32测量电流
  15. Abaqus中常用的幅值曲线
  16. Android 架构 JAVA API,灵云SDK开发手册(Java API)
  17. 程序是如何写出来的?
  18. 小爱同学+blinker+esp8266实现千里点灯
  19. OriginBot智能机器人开源套件-Step2系统镜像安装与备份
  20. 使用盗版软件企业将入“黑名单” 降其信用等级

热门文章

  1. python常用模块与MySQL数据库交互(学习笔记)
  2. 远程控制计算机无法粘贴,Windwos服务器远程桌面不能复制粘贴的解决方法
  3. 德勤:制造业企业数字化转型方案(PPT)
  4. 一行脚本实现远程开机
  5. 计算机英语口语900句,日常英语口语
  6. linux离线安装字体
  7. 一次CNVD-2020-10487漏洞利用
  8. Error: ImageIO: PNG invalid PNG file: iDOT doesn't point to valid IDAT chunk 解决
  9. 中国学的哲学概念“道、法、术、势”怎么理解 [转]
  10. 扒一扒 ScheduledThreadPoolExecutor