python基础总结

一、数据类型基础

数据类型就是不同种类的变量值用不同的数据类型来描述

1.1 数字类型

整型(int)

  • 定义方式:

    age=18  # age=int(18)
    
    print(type(age))
    print(age)
    

    <class 'int'>
    18

  • 作用:例如表示人的年龄、号码、级别等的整数

  • 使用方法:可以加减乘除、逻辑判断(大于、小于)

浮点型(fioat)

  • 定义方式:

    salary=2.3  # salary=float(2.3)
    
    print(type(salary))
    print(salary)
    

    <class 'float'>
    2.3

  • 作用:例如表示身高、体重、薪资等的数值

  • 使用方法:可以加减乘除、逻辑判断(大于、小于)

1.2 字符串类型(str)

  • 定义方式:

    字符串就是一串被串起来的字符,在单引号、双引号或三引号内包裹的一串字符。需要注意的是:三引号内的字符可以换行,而单双引号内的字符不行

    name1='zyl'
    name2="cx"
    
    print(id(name1))
    print(type(name1))
    print(name1)
    

    2693201174912
    <class 'str'>
    zyl

    name3="""zyl
    egon"""
    
    print(name3)
    

    zyl
    egon

  • 作用:例如表示名字、爱好

  • 使用方法:字符串只能用+,*和逻辑比较,字符串的拼接,即重新申请一个小空间把两个字符串都拷贝一份后再拼接,而不是你YY的把一个小空间内的变量值复制到另一个变量的小空间内,然后拼接

注意:如果字符串内有引号,则包裹字符串的引号和字符串内部的引号不能相同

字符串的乘法只能乘以数字
字符串的比较是字母的顺序

1.3 列表类型(list)

  • 定义方式:

    hobby='read'
    hobby_list=[hobby,'run','girl']
    
    print(type(hobby_list))
    print(hobby_list)
    

    <class 'list'>
    ['read', 'run', 'girl']

  • 作用:存放多个值

  • 使用方法:在[ ]内用逗号分隔开任意类型的值,列表索引取值序号从0开始

    hobby_list=['read','run','girl']
    # 索引序号    0      1      2
    print(hobby_list[1] ) # 取出第二个爱好
    

    run

    hobby_list=['read','run',['girl_name',18,'shanghai']]
    print(hobby_list[2][1])    # 取出girl的年龄
    

    18

1.4 字典类型(dict)

  • 定义方式:

    在{}内用逗号分隔开多个元素,每一个元素都是key: value的格式,其中value是任意格式的数据类型,key由于具有描述性的作用,所以key通常是字符串类型

    user_info={'name':'zyl','gender':'male','age':18,
               'company_info':['oldboy','shanghai',40]}
    
    print(id(user_info))
    print(type(user_info))
    print(user_info)
    

    2178070637592
    <class 'dict'>
    {'name': 'zyl', 'gender': 'male', 'age': 18, 'company_info': ['oldboy', 'shanghai', 40]}

  • 作用:用来存取多个值,按照key:value的方式存值,取值的时候通过key而非索引去取值,key对value具有描述性的作用。存放数据的种类各种各样并且数据较多的时候可以使用字典

  • 使用方法:字典取值方式不再依赖于索引,而是依赖于key,通过[key]即可获取key对应的value值

    # 字典套列表
    user_info={'name':'zyl','gender':'male','age':18,
               'company_info':['oldboy','shanghai',40]}
    print(user_info['name'])
    print(user_info['company_info'][0])
    

    zyl
    oldboy

    # 字典套字典
    user_info={'name':'zyl','gender':'male','age':18,
               'company_info':{'c_name':'oldboy','c_addr':'shanghai','c_num_of_employee':40}}
    
    print(user_info['name'])
    print(user_info['company_info']['c_name'])
    

    zyl
    oldboy

1.5 布尔类型(bool)

  • 定义方式:

    True、False通常情况不会直接引用,需要使用逻辑运算得到结果

  • 作用:用于判断条件结果

  • 使用方法:

    print(type(True))
    print(True)
    

    <class 'bool'>
    True

    print(bool(0))
    print(bool('nick'))
    print(bool(1 > 2))
    print(bool(1 == 1))
    

    False
    True
    False
    True

注意:python中所有数据类型的值都自带布尔值。如此多的数据类型中只有0、None、空、False的布尔值为False,其余的都为True。

print(bool(0))
print(bool(None))
print(bool(''))
print(bool([]))
print(bool({}))
print(bool(False))

False
False
False
False
False
False

二、解压缩

  • 解压缩可以这样理解:超市打包是把多个商品放在一起,解压缩其实就是解包把多个商品一次性拿出来

    name_list=['yujin','xuchu','dianwei','xiahoudun']
    x,y,z,a=name_list
    print(f'x:{x}, y:{y}, z:{z}, a:{a}')
    

    x:yujin, y:xuchu, z:dianwei, a:xiahoudun

  • 有时候我们解压缩的值可能是我们不想要的,那么可以使用下划线,万能的下划线

    lis=[1,2,3]
    x1,_,x3=lis  # 不需要2,_表示不需要,约定俗成的
    print(x1)
    print(x3)
    

    1
    3

    lis=[1,2,3]
    _, _, x3 = lis  # 只要第三个元素
    print(x3)
    

    3

    lis=[1,2,3,4,5,6,7]
    x1,x2,*_,x3=lis  # *_ 会把前面所有的都省略掉,都不要
    print(x1)
    print(x2)
    print(x3)
    print(_)
    

    1
    2
    7
    [3, 4, 5, 6]

  • python追求的是简洁性,代码不要写的太长了。因此用字典类型解压缩也是可以的,但是字典解压缩得到的是key。

    info = {'name': 'nick', 'age': 18}
    x, y = info
    print(x, y)
    

    name age

三、Python与用户交互

计算机的发明是为了奴役计算机,解放劳动力.写了一个程序系统来取代人类,那就需要这个程序能与人交互

如何交互

# 用户名和密码的交互
username_db='zyl'
pwd_db='123'

username=input('请输入你的用户名:')  # input让用户输入,与用户交互
pwd=input('请输入你的密码:')
if username == username_db and pwd == pwd_db:
    print('登陆成功')
else:
    print('登陆失败')


请输入你的用户名:zyl
请输入你的密码:123
登陆成功

注意无论我们输入的值是数字类型、字符串类型、列表类型,input的接收值都是字符串类型

四、格式化输出的三种方式

1、占位符

程序中经常会要求用户输入信息,然后打印成固定的格式,占位符能很方便的把用户信息放到指定的位置

name='zyl'
age=25
print('my name is %s my age is %s'% (name,age))

my name is zyl my age is 25

age = 25
print('my age is %d' % age)

my age is 25

%s(针对所有数据类型),%d(只针对数字类型)

2、format格式化

很鸡肋的方法,基本不会去用

name = 'zyl'
age = 25
print("Hello, {}. You are {}.".format(name, age))

Hello, zyl. You are 25.

3、f-String格式化

该方法相对于上面两种更加简单易懂,print(f'{key}')的格式

name='zyl'
age=25
print(f"Hello,{name}. You are {age}.")

Hello,zyl. You are 25.

大写的F和小写y都可以

https://www.cnblogs.com/nickchen121/p/10728289.html

五、基本运算符

1、算术运算符

运算符 描述 实例
+ a+b
- a-b
* a*b
/ a/b
// 除以取整 a//b
% 除以取余 a%b
** 幂(次方) a**b为a的b次方

2、比较运算符

偷个懒,直接盗图吧!

029-基本运算符-比较运算符.jpg?x-oss-process=style/watermark

3、赋值运算符

贴图不可耻,理解记住就行

029-基本运算符-赋值运算符.jpg?x-oss-process=style/watermark

4、逻辑运算符(返回True或False)

029-基本运算符-逻辑运算符.jpg?x-oss-process=style/watermark

# and(和),两个条件都为真就为真,否则都为False
print(1>1 and 2>3)  # False
print(10>1 and False)  # False

# or(或),只要有一个为真就为真,否则都为False
age = 18
inp_age= input('age:')
print(age==inp_age or True)  # True
print(True or False)  # True
print(False or False)  # False

# not(不是)
print(not True)   # False
print(not False)  # True

5、身份运算符(通过比较两者id返回布尔值)

029-基本运算符-身份运算符.jpg?x-oss-process=style/watermark

is和==的区别:is用于判断两个变量引用对象是否为同一个(是否在同一块内存空间中), ==用于判断引用变量的值是否相等。

x = 257
y = x
z = 257

print(f'x is y:{x is y}')
print(f'x == y:{x == y}')

print(f'x is z:{x is z}')
print(f'x == z:{x == z}')

x is y:True
x == y:True
x is z:False
x == z:True

6、Python运算符优先级

只做了解就行,优先级高的括号括起来就行了

029-基本运算符-python运算符优先级.jpg?x-oss-process=style/watermark

https://www.cnblogs.com/nickchen121/p/10728299.html

六、流程控制之if判断

1、语法

if主要就是模拟我们人类做判断。就是说如果这样干什么,如果那样干什么。

1.1 if(单分支结构)

表示if成立代码成立会干什么


<代码块1>
if <条件>:
	<代码块2>  # 当条件为True的时候执行代码块2然后执行代码块3,否则不执行代码块2直接执行代码块3  
<代码块3>  # 当条件不成立时直接运行代码块3
cls = 'human'
gender = 'female'
age = 18

if cls == 'human' and gender == 'female' and age > 16 and age < 22:
    print('开始表白')

print('end...')

开始表白
end...

1.2 if...else (双分支结构)

<代码块1>
if <条件>:
    <代码块2>  # 当条件为True的时候执行代码块2然后执行代码块3 
else:
    <代码块4>  # 当条件不成立时,运行代码块4,然后再运行代码块3
<代码块3>  # 当条件不成立时首先运行代码块4,然后运行代码块3

表示if成立代码成立会干什么,else不成立会干什么。

cls = 'human'
gender = 'female'
age = 38

if cls == 'human' and gender == 'female' and age > 16 and age < 22:
    print('开始表白')
else:
    print('阿姨好')

阿姨好

1.3 if...elif...else (多分支结构)

<代码块1>
if <条件1>:
    <代码块2>  # 当条件1为True的时候执行代码块2然后执行代码块3  
elif <条件2>:
    <代码块5>  # 当条件1不成立条件2成立,执行代码块5,然后执行代码块3
elif <条件n>:
    <代码块n>
else:
    <代码块4>  # 当if和elif的所有条件都不成立时,执行代码块4,然后执行代码块3
<代码块3>

if...elif...else表示if条件1成立干什么,elif条件2成立干什么,elif条件3成立干什么,elif...否则干什么。

cls = 'human'
gender = 'female'
age = 28

if cls == 'human' and gender == 'female' and age > 16 and age < 22:
    print('开始表白')
elif cls == 'human' and gender == 'female' and age > 22 and age < 30:
    print('考虑下')
else:
    print('阿姨好')

考虑下

2、if的嵌套

age = 18

inp_age = int(input('age:'))  # 17

if age >= inp_age:   # a
    if age > inp_age:  # b
        if 'e':
            print('猜小了') #  a成立b也成立e也成立我才做
    else: # c
        print('猜中了') # a成立 c成立我才做
else: # d  # a不成立我就做
    print('猜大了')

https://www.cnblogs.com/nickchen121/p/10737326.html

七、流程控制之while循环

1、语法

while循环又称为条件循环,while就是当的意思,指当后面的条件成立,就执行while下面的代码,循环就是重复做一件事。

while 条件:
	代码块  # 当条件成立时会进行运行,结束完代码块后会再一次判断条件,成立再运行代码块,运行完再判断条件

2、while+break

在循环的过程中,因为某些原因,不想继续循环了,要把它终止,就要用到break和continue语句。

break用于完全结束一个循环,跳出循环体执行循环后面的语句。

while(当) <条件>:
    <需要进行重复的代码块>  # 当条件成立时会进行运行,结束完代码块后会再一次判断条件,成立再运行,运行完再判断条件,%
    break  # 遇到break后终止while循环

3、while+continue

continue和break有点类似,区别在于continue只是终止本次循环,接着还执行后面的循环,而break则完全终止循环。

while 条件:
    代码块
    if 条件:
        代码块
        cotinue  # 不执行下面代码,然后继续循环,即跳出本次循环
    代码块

4、while循环的嵌套

​ 也就是第一个while循环要执行的代码块中再加入一个while循环,例如ATM密码输入成功还需要进行一系列的命令操作,比如取款,比如转账。并且在执行功能结束后会退出命令操作的功能,即在功能出执行输入q会退出输出功能的while循环并且退出ATM程序。

5、tag控制循环退出

也就是让tag=True或False

6、while+else (仅做了解即可)

n = 1
while n < 3:
    print(n)
    n += 1
else:
    print('else会在while没有被break时才会执行else中的代码')
1

1
2
else会在while没有被break时才会执行else中的代码

八、流程控制之for循环

for循环的循环次数受限于容器类型的长度,而while循环的循环次数需要自己控制。for循环也可以按照索引取值。

1、语法

for i in range/str/list/tuple/dict/set(可迭代对象):
    print(i)

2、for+break

for循环跳出结束本层循环

for i in range/str/list/tuple/dict/set(可迭代对象):
    print(i)
    break  # 结束本层循环

3、for+continue

for循环结束本次循环,进入下一次循环

for i in range/str/list/tuple/dict/set(可迭代对象):
    print(i)
    if 条件:
        continue  # 结束本次循环,即不执行下面代码,继续循环
    代码块

4、for循环的嵌套

外层循环循环一次,内层循环循环所有的。

for i in range(3):
    print(f'-----:{i}')
    for j in range(2):
        print(f'*****:{j}')

5、for+else

for循环没有break的时候触发else内部代码块

for i in range/str/list/tuple/dict/set(可迭代对象):
    print(i)
else:
    print('如果我没有被break,我就会被打印出来')
name_list = ['nick', 'jason', 'tank', 'sean']
for name in name_list:
    print(name)
else:
    print('for循环没有被break中断掉')

在往后的python编程中,还是经常用for循环比较好。

九、Python基础小结

https://www.cnblogs.com/nickchen121/p/11069987.html

原文地址:https://www.cnblogs.com/zhuangyl23/p/11285176.html