Python09前文总结-Q&A

本文深入解析Python的基础数据类型,包括数字、字符串、列表、元组、字典和集合的操作方法,以及变量、运算符、控制结构的使用技巧。同时介绍了Python文件运行方式和编程习惯,帮助初学者快速掌握Python编程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Q:什么是数字类型

A:

what

包含:int(整型)float(浮点型)bool(布尔型)complex(复数)

how

1.除法结果怎样分别整型和浮点型 2/2 为float 2//2 为int
2.表达其他进制 0b10(二进制的10) 0o10(八进制的10) 0x10(十六进制的10)
3.布尔值bool(0)=False bool(1)=True 第一个字母必须大写

Q:什么是字符串类型

A:

what

代号:str

when

字符串的运算
加法:“hello”+"world"?’helloworld’
乘法:“hello”*3?’hellohellohello’
获取字符 [x:y]:x表示起始位置(0为第一个字符)y表示步长不表示第几
‘helloworld’[0]?h
‘helloworld’[-1]?d
‘helloworld’[0:4]?hell
‘helloworld’[0:-1]?’helloworl’
how
1.建议每行79字符
2.字符串的引号必须成对出现

Q:什么是转义字符

A:

what


如 ’ 输出为’ 否则系统会认为缺少另一个’
\n 换行
\r 回车
’ 单引号
\t 横向制表符

where

在print函数中在全文前入r或R,就不是一个普通字符串而是一个原始字符串,所见即所得

Q:什么是列表list

A:

what

定义[1,2,3,4,5,6]或[“hello”,“world”,1,9]或[[1,2],[3,4],“hello”,“world”,1,9](嵌套列表)
数字、布尔和字符串都可以,甚至是列表(任意类型)

how

访问列表元素

[1,2,3,4,5,6][0] => 1
[1,2,3,4,5,6][3] => 3
[1,2,3,4,5,6][0:2](得到列表) => [1,2]
[1,2,3,4,5,6][-1:](得到列表) => 输出为:[6]

列表计算

[1,2,3,4,5,6]+[7,8] => [1,2,3,4,5,6,7,8]
[7,8]*3 => [7,8,7,8,7,8]

列表元素切片方法
a[0:len(a):2] 其中:a是列表,0为初始位置,len(a)表示便宜量,此处为列表a的长度,2是步长

Q:什么是元组tuple

A:

what

定义(1,2,3,4,5,6)
和列表一致可以放任意元素,和列表运算方式也一致

how

访问元组元素

(1,2,3,4,5,6)[0] => 1
(1,2,3,4,5,6)[3] => 3
(1,2,3,4,5,6)[0:2](得到列表) => (1,2)
(1,2,3,4,5,6)[-1:](得到列表) => 输出为:(6)

元组计算

(1,2,3,4,5,6)+(7,8) =>(1,2,3,4,5,6,7,8)
(7,8)*3 =>(7,8,7,8,7,8)

元组元素切片方法
a(0:len(a):2) 其中:a是元组,0为初始位置,len(a)表示便宜量,此处为元组a的长度,2是步长

how much

括号表示运算符号的时候,规定()不表示tuple
括号表示tuple方法(1,)或()

Q:什么是序列

A:

what

字符串str 列表list 元组tuple都是序列

how

序号:用[2]序号获得元素,每个元素会被分配一个序号
切片:用[0:3][-1:0]获得元素序列 [0:8:2]是另一种用法
判断元素:

3(not) in [1,2,3,4,5,6]得到bool
3 in [1,2,3,4,5,6] => True
10 in [1,2,3,4,5,6] => False
3 not in [1,2,3,4,5,6] => False

求长度:
len([1,2,3,4,5,6]) => 6
求最大/最小<根据ASIC码排序通过方法old()求值>

max(min)([1,2,3,4,5,6]) => 6(1)
max(min)('hello world') => w (空格)
min('hello world') => d

Q:什么是集合set

A:

what

用{1,2,3,4,5,6}定义
集合不重复,集合是无序的
{1,2,1,3,2,4} => {1,2,3,4}

how

判断元素:

3(not) in {1,2,3,4,5,6}得到bool
3 in {1,2,3,4,5,6} => True
10 in {1,2,3,4,5,6} => False
3 not in{1,2,3,4,5,6} => False

求长度:
len({1,2,3,4,5,6}) => 6
求最大/最小<根据ASIC码排序通过方法old()求值>
max(min)({1,2,3,4,5,6}) => 6(1)
-号 求差集
{1,2,3,4,5,6}-{3,4} => {1,2,5,6}
&号 求交集
{1,2,3,4,5,6}&{3,4} => {3,4}
|号 求合集
{1,2,3,4,5,6}|{3,4,7} => {1, 2, 3, 4, 5, 6, 7}
定义一个空集
set()

Q:什么是字典dict

A:

what

字典是集合类型,无序
通过Key(关键字)来访问Value(值)
表示方式:{Key1:Value1,Key2:Value2,Key2:Value2,Key2:Value2,…}
Key必须是不可变的类型<不可以是列表但是可以是元组字符串和int等数字型>
Value可以是str,int,bool等多种形式,包括数组、集合甚至字典

how

提取字典值

 {1:'a',2:'b',3:'c'}[1] => 'a'
 {1:'a',1:'b',3:'c'}[1] => 'b'

字典不能有重复的key

 {1:'a',1:'b',3:'c'} => {1:'b',3:'c'}
 {1:'a','1':'b',3:'c'}[1] => 'a'
 {1:'a','1':'b',3:'c'}['1'] => 'b'

空的字典定义{}
set()

Q:什么是变量

A:

what

变量没有类型限制,python的动态性

who

int str tuple 是值类型 可变
list set dict 是引用类型 不可变
值类型是指向一个赋值,把变量指向一个数字
引用类型是原本系统的地址,更改变量等于更改系统内部数值

how much

变量名称尽量有意义,命名可读性要强
变量名首字不能是数字(可以是字母和下划线)
系统关键字(保留关键字),不可以用
橙色是保留关键字,紫色是易错关键字,不建议使用。
黑色可以使用,变量名区分大小写
为了维护代码的稳定性,不可变数值能用元组就用元组

Q:什么是运算符

A:

what

赋值运算符
算数运算符和赋值运算符的区别是,会改变变量值
比较(关系)运算符
返回一个bool值
在字母比较中,比较的是一个ascll码
但字符串并不是一个ascll码,会把每一个字母做比较
逻辑运算符
操作bool返回结果也是bool
int和float 0是False 非0是True
字符串 空字符串是False 否则是True
list tuple set dict 空的是False 否则是True
and的返回规律
and是运算两个数值对比,因此
发现一真一假,就会返回假的值。
发现两个同为真的话,就会返回后面的值。
发现两个同为假的话,就会返回前面的值。
or的返回规律
or是运算两个数值一个为真就可以结束运算,因此
发现一真一假,就会返回真的值。
发现两个同为真的话,就会返回前面的值。
发现两个同为假的话,就会返回后面的值。
成员运算符
返回值是bool
身份运算符
返回值是bool
is 和 = =
= = 是值是否相等
is是比较身份是否相等,比较内存地址id()在内存中的位置
类型的判断type
值(value判断方式==),身份(id判断方式is)和类型(type判断方式isinstance())是对象的三个特征
isinstance(a,str) a是否为str
isinstance(a,(int,str,float)) a是否为类型中的任意一个
位运算符
都把值先转换成二进制再进行运算
位运算不支持list tuple dict str
位运算支持set和数字类型

Q:python文件的运行

A:

who

辅助开发工具
pycharm vscode sublime
vscode插件:Python(必备);terminal;view in browser;Vim; vscode-icons

how

原生系统运行python文件
系统运行 →cd D:→回车→D:(文件夹名称)→回车→D:(文件夹名称)\python (文件名称).py→回车
vscode快捷键:
F5 调试
ctrl+F11 跳出
单行注释:ctrl+/(以#开始)
多行注释:alt+shift+a(以’’‘开始,以’’'结尾)
重命名:点文件名按 F2
片段功能:在一个字块位置编写完毕后,按Tab键到下一个字块处;回到上一个字块处用shift+Tab
ctrl+C:强制停止一个程序(特别是无限循环时)
在常规设置内找到files.exclude可以将不需要的文件隐藏

Q:什么是条件控制

A:

what
if
'''
每个模块前应该有一段描写模块意义的文字
常量(constant)固定不变,应该大写,
'''
定义常量
定义变量
if 结果为bool值的语句:
    一个命令行        #可以是pass
    第二个命令行      #可以是pass
    ...
else:
    一个命令行
    第二个命令行
    ...
elif
#引入:elif=else+if,elif必须和if配对使用
#在python里面没有switch
#也可以选择字典解决
if
'''
每个模块前应该有一段描写模块意义的文字
常量(constant)固定不变,应该大写,
'''
定义常量
定义变量
if 结果为bool值的语句:
    一个命令行        #可以是pass
    第二个命令行      #可以是pass
elif:
      一个命令行
      第二个命令行
      ...
elif:
      一个命令行
      第二个命令行
      ...
who

关键字 if else elif

how much

对于程序嵌套,应该尽量避免,转而使用函数或者elif和字典等

Q:什么是循环控制

A:

what

while

while 结果为bool值的语句:
    一个命令行   #可以是pass
    第二个命令行 #可以是pass
    ...
else:   #while后面可以接else使用
    一个命令行
    第二个命令行
    ...

for

for 数值 in 序列:
    一个命令行      #可以是pass
    第二个命令行    #可以是pass
    ...
else:      #for后面可以接else使用
    一个命令行
    第二个命令行
    ...
who

关键字 while for in range break continue

when

在递归中适合使用while
for主要用来遍历/循环 序列或者集合,字典

how

for打印两层列表

示例:
#print默认打印出列,加end=''可更改为打印成行
a =[ ['apple','orange','banana','grape'],(1,2,3)]
for i in a;
    for j in i;
        print(j,end='')

终止for语句的遍历

示例:
#结束循环语句使用break,后续else也不会执行,执行结果:1
#break只结束一层for循环
a = [1,2,3]
for x in a:
    if x==2
        break
    print(x)

跳过for语句的遍历

示例:
#跳过循环语句使用continue,后续else会执行,执行结果:1 3
a = [1,2,3]
for x in a:
    if x==2
        continue
    print(x)

一段代码执行十次

示例:
'''
与C#中for(i=0; i<10; i++){}等效
range函数(a,b) a表示起始值,b表示偏移量
'''
#连续1到10
for x in range(0,10):
    print(x)

#间隔range函数(a,b,c) a表示起始值,b表示偏移量,c表示步长

for x in range(0,10,2):
    print(x)

#反向range函数(a,b,c) a表示起始值,b表示偏移量,c表示步长

for x in range(10,,0,-2):
    print(x)
how much

while非常容易造成死循环,如何避免:避免判断语句是一个常量,在代码块中需要有能够影响代码块变量的命令

Q:编程习惯有哪些

A:

变量名称尽量有意义,命名可读性要强
为了维护代码的稳定性,不可变数值能用元组就用元组
对于程序嵌套,应该尽量避免,转而使用函数或者elif和字典等
高级代码要求:高性能,封装性好(可复用性高)
python建议,一行代码不得超出80字
避免循环导入 1调用2 2就不能再调用1 否则报错 不推荐
函数嵌套不应超过两层
尽量不要使用a[i]表达序列的数值
函数中尽量不要使用过多的参数,若需要参
数数量大,应该使用对象
枚举内部的变量名类似常量尽量全体大写
对修改是封闭的,对扩展是开放的
定义可以复杂,但调用不能复杂

Q:Python项目的组织结构

A:

what

命名空间:包名.子包名.模块名.类

where

包→模块→类→函数和变量
一个文件夹代表一个包
一个文件代表一个模块
一个class代表一个类

how

调用其他模块的内容
同包内部
import 模块名
调用时 print(模块名.变量名)

不同包内部
import 包名.模块名
调用时 print(包名.模块名)
调用后会生成一个__pycache__文件夹里面包含一个模块名.cpython-36.pyc文件
模块名.cpython-36.pyc 是一个自解码文件

此方法import 只能到达模块
另外可以写成
import 包名.模块名 as m
调用时 print(m.变量名)

调用变量另一种方法:from
from 包名.模块名 import 变量名
调用时 print(变量名)
from 包名 import 模块名
调用时 print(模块名.变量名)
from 包名.模块名 import *
调用时 print(变量名)
#调用多变量,但不推荐
from 包名.模块名 import *
调用时 print(变量名)
#在被调用模块中添加一行代码__all__ = [变量名1,变量名2,变量名3]
其中,列表变量为可以让其他人调用的变量
一次导入多个模块或变量
from 包名.模块名 import 变量名1,变量名2,变量名3
#一行代码写不开,可以在代码后加\然后换行,不推荐
可以使用括号换行

how much

关于__init__.py
1.将一个文件夹变成一个包,这个文件夹必须有一个,init.py 文件(模块)
2.init.py 文件可以为空,只做标注包
3.没有 包名.init 这个命名空间
4.import 包名(或者包下面的模块等)后就会直接执行在__init__.py 文件中命令
5.init.py 文件中命令的应用场景
在__init__.py 文件中定义
all = [模块名1,模块名2,模块名3]
#调用这个包时,只能调用定义后的模块中的变量
6.可以将包内模块所需要的所有变量,都用import进来
可以避免多次重复写,也可以跨包调用

示例:
import 包名
print(包名.模块名.变量名)  #调用 

包和模块是不会被重复导入的
import 导入模块后就会执行模块内的代码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值