python入门与进阶

本文介绍了Python的基础数据类型,包括Number(整型、浮点型、布尔型、复数)、String(字符串)以及序列(列表、元组、集合和字典)。详细讲解了各类型的特点、转换和操作方法,如布尔转换、字符串拼接、序列截取、成员运算等。此外,还涉及变量、运算符的使用规则,以及进制转换。文章以实例演示,深入浅出地解析了Python的基本语法和常用操作。

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

python一切都是对象,对象的三个特征:id、value、type。

python安装好后,自带一个IDEL shell

>>> print('hello,world')
hello,world

一、python的基础数据类型

1、Number:数字

(1)int:整数

>>> type(1)
<class 'int'>

(2)float:浮点数

>>> type(1.2)
<class 'float'>

(3)long

python3中没有,python2中有

(4)bool:布尔类型

1)bool表示

首字母必须大写,非零为True,零表示为False

>>> True
True
>>> False
False
>>> true
Traceback (most recent call last):
  File "<pyshell#34>", line 1, in <module>
    true
NameError: name 'true' is not defined
>>> type(False)
<class 'bool'>

2)bool与其他数值类型转换

>>> int(True)
1
>>> int(False)
0
>>> bool(1)
True
>>> bool(0)
False
>>> bool(2)
True
>>> bool(0xf)
True

3)bool与其他类型之间的应用

>>> bool('abc')
True
>>> bool('')
False
>>> bool([1,2,3])
True
>>> bool([])
False
>>> bool({1,2,3})
True
>>> bool({})
False
>>> bool(None)
False

(5)xomplex:复数

>>> 36j
36j

(6)浮点数和整数计算

>>> type(1+1.1)
<class 'float'>
>>> type(1+1)
<class 'int'>
>>> type(1+1.0)
<class 'float'>
>>> type(2/2)
<class 'float'>
>>> type(2//2)
<class 'int'>

注意,与Java不同的是,整形相除,为浮点类型,若要得到整形用两个除号,两个除号得到的结果只保留整数位

2、str:字符串

(1)字符串表示

表示字符串的方式:单引号,双引号,三引号

>>> 'let\' go'
"let' go"
>>> "let's go"
"let's go"

python建议每行代码不超过79个字符,超过就加回车,三引号中可以加回车

>>> '''
hello
hello
helll
'''
'\nhello\nhello\nhelll\n'
>>> """
hello
hello
hello
"""
'\nhello\nhello\nhello\n'
>>> print('hello\nhello\nhello\n')
hello
hello
hello
>>> 'hello\
world'
'helloworld'
>>> print(r'hello\nworld')
hello\nworld

字符串前加r(也可大写),表示原始字符串,不会把反斜杠当转移字符串

(2)字符串操作

字符串可以看做序列

拼接字符串

>>> 'hello'+' world'
'hello world'
>>> 'hello' * 3
'hellohellohello

截取单个字符串

>>> 'hello world'[0]
'h'
>>> 'hello world'[2]
'l'
>>> 'hello world'[-1]
'd'

截取字符串

切片:两个参数都为字符下标,包前不包后

>>> 'hello word'[0:5]
'hello'
>>> 'hello world'[1:-1]
'ello worl'
>>> 'hello world'[6:20]
'world'
>>> 'hello world'[6:]
'world'
>>> 'hello world'[:-6]
'hello'
>>> 'hello world'[:-5]
'hello '
>>> 'hello word'[0:8:2]
'hlow'

3、序列

(1)列表的表示

>>> type([1,2,3,4])
<class 'list'>
>>> type(['hello',1,False])
<class 'list'>
>>> type([[1,2,3],[False,True]])
<class 'list'>

(2)列表的操作

>>> ["张飞","刘备","关羽"]+["项羽","刘邦"]
['张飞', '刘备', '关羽', '项羽', '刘邦']
>>> ["项羽","刘邦"]*3
['项羽', '刘邦', '项羽', '刘邦', '项羽', '刘邦']

添加元素

>>> a = [1,2,3]
>>> a.append(4)
>>> a
[1, 2, 3, 4]

(3)元组tuple

>>> type((1,2,3))
<class 'tuple'>
>>> (1,"st",True)
(1, 'st', True)
>>> (1,2,3,4)[0]
1
>>> (1,2,3,4)[0:2]
(1, 2)
>>> (1,2,3)+(4,5,6)
(1, 2, 3, 4, 5, 6)
>>> (1,2,3)*3
(1, 2, 3, 1, 2, 3, 1, 2, 3)

单个元素的元组表示:

>>> type((1))
<class 'int'>
>>> type(('str'))
<class 'str'>
>>> type((1,))
<class 'tuple'>
>>> type(())
<class 'tuple'>

元组是不可改变的,但如果元组的元素有列表,列表中的元素是可以改变的

>>> a = (1,2,3,[1,2,6])
>>> a[3][0] = '9'
>>> print(a)
(1, 2, 3, ['9', 2, 6])

(4)序列的其他操作

判断一个元素是否在一个序列中

>>> 'hello word'[0:8:2]
'hlow'
>>> 3 in[1,2,3,4,5]
True
>>> 10 in[1,2,3,4,5]
False
>>> 3 not in [1,2,3,4,5]
False

获得序列的长度

>>> len([1,2,3,4,5])
5

获得序列中最大,最小的元素

>>> max([1,3,5])
5
>>> min([1,3,4])
1
>>> max('hello world')
'w'
>>> min('hello world')
' '

获得字符的ASCII码

>>> ord('w')
119
>>> ord('a')
97
>>> ord(' ')
32

4、set:集合

无序,不重复

set的操作:

>>> {1,2,3,4,5,6} - {1,2}
{3, 4, 5, 6}
>>> {1,2,3,4,5,6} & {3,4}
{3, 4}
>>> {1,2,3,4,5,6} | {3,4,9}
{1, 2, 3, 4, 5, 6, 9}
>>> type(set())
<class 'set'>
>>> type({})
<class 'dict'>

5、dict:字典

key只能为不可变的类型:int、str

字典表示

>>> type({'a':'abc','b':'bcs','c':'cat'})
<class 'dict'

操作dict

>>> {'a':'abc','b':'bcs','c':'cat'}['a']
'abc'

二、各进制的表示和转换

1、进制表示

以0b开头为二进制:0b10

>>> 0b10
2
>>> 0b111
7

以0o开头为八进制:0o11

>>> 0o11
9

以ox开头为16进制:ox1F

>>> 0x1f
31

2、进制转换

自动转换,如上。

(1)转换为二进制:bin()

>>> bin(10)
'0b1010'
>>> bin(0o11)
'0b1001'
>>> bin(0xE)
'0b1110'

(2)转换为十进制:int()

>>> int(0b11)
3
>>> int(0o11)
9
>>> int(0x11)
17

(3)转换为十六进制:hex()

>>> hex(0b11)
'0x3'
>>> hex(11)
'0xb'
>>> hex(0o11)
'0x9'

三、变量与运算符

1、变量

变量名只能以字母、数字、下划线组成,且不能以数字开头。

变量是没有类型的

>>> a = 1
>>> a = '1'
>>> a = (1,2,3)

注意,因为有以下问题,尽量不要使用经常调用的方法的方法名作为变量名

>>> type = 1
>>> type(1)
Traceback (most recent call last):
  File "<pyshell#128>", line 1, in <module>
    type(1)
TypeError: 'int' object is not callable

不可改变,值类型:int、str、tuple

可变、引用类型:list、set、dict

id()函数:显示某个变量在内存中的地址

>>> a = "hello"
>>> id(a)
1690057236272

2、运算符

(1)算术运算符

python中没有自增、自减运算符

平方

>>> 3**3
27

比较运算符:可以比较str,列表、元组

(2)逻辑运算符

and、or、not(and的优先级大于or,not最大)

>>> not True
False
>>> not False
True
>>> not not False
False
1)其他类型与bool类型的转换关系

int、float:0被认为False,非0表示True

>>> bool(0)
False
>>> bool(1.1)
True

str:空字符串为False

>>> bool('')
False
>>> bool('0')
True

列表(tuple、set、dict):空列表为False

>>> bool([])
False
>>> bool([1,2])
True
2)逻辑运算符与其他类型

not与其他类型之间返回True、False

>>> not '1'
False
>>> not 0
True

and:

  • 结果为false,返回代表false的值
  • 结果为true,返回第二个值(计算机需要读取两个值才能确定结果)
>>> 1 and 0
0
>>> 0 and 1
0
>>> 1 and 2
2
>>> 2 and 1
1

or:返回第一个值(or只需要读取一个值就可以确定结果)

>>> 0 or 1
1
>>> 1 or 0
1
>>> 1 or 2
1
>>> 2 or 1
2

(3)成员运算符

in、not in;可用于列表、str、元组、集合、字典(字典判断的是key)

(4)身份运算符

is、is not

>>> a = 1
>>> b = 2
>>> a is b
False
>>> a = 1
>>> b = 1
>>> a is b
True
>>> a = 'a'
>>> b = 'b'
>>> a is b
False
>>> a = 'a'
>>> b = 'a'
>>> a is b
True

==比较的是连个两变量的值是否相等,is比较的是身份(内存地址)是否相等

>>> a = 1
>>> b = 1.0
>>> a is b
False
>>> a == b
True
>>> id(a)
1690038397232
>>> id(b)
1690055617040

集合和元组的比较

>>> a = {1,2,3}
>>> b = {2,1,3}
>>> a == b
True
>>> a is b
False
>>> c = (1,2,3)
>>> d = (2,1,3)
>>> c == d
False
>>> c is d
False

类型判断,推荐用isinstance,因为type不能判断子类型

>>> a = 'a'
>>> isinstance(a,str)
True
>>> isinstance(a,(int,str,float))
True

四、语法

在cmd中执行hello.py

python hello.py
  • 所有字母大写,表示该变量为常量

  • :号前不要用空格

  • 文件最后加一个空行

  • 占位语句pass

if True:
    pass #站位语句

1、if_else

print("输入数字,得出该数字的平方值")
num = int(input())
print(num ** 2)
if num > 2:
    print("num大于2")
else:
    print("num不大于2")

if_elif_else

a = 1
if a == 3:
    print("a = 3")
elif a == 2:
    print("a = 2")
else:
    print("a = 1")

2、while循环

while循环,当条件为false时,执行else中的语句,然后跳出

a = True
while a:
    print('this is tom')
    a = False
else:
    print("EOF")

3、for循环

for循环、break、continue

break后不会执行else

a = ['张飞', '刘备', '关羽', '项羽', '刘邦']
for x in a:
    if x == '张飞':
        continue
    if x == '项羽':
        break
    print(x, end = ' ')
else:
    print("end")

4、for_range

 # 10是偏移量
for x in range(0,10):
    print(x, end=" ")
else:
    print()

for x in range(0,10,2):
    print(x, end=" ")
else:
    print()


for x in range(10,0,-2):
    print(x,end=" ")
else:
    print()

for range练习:打印出[1,2,3,4,5,6,7,8,]中的1,3,5…

a = [1,2,3,4,5,6,7,8]
for i in range(0,8,2):
    print(a[i], end=" ")
else:
    print()

未完。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值