光计划1

今天是7月的最后一天,8月努力!

变量的三个特征

一丶打印

print(x)
print(id(x))
print(type(x))

二丶判断变量值是否相等

True False

三丶判断变量id是否相等

x = 11
y = x
z = 11
print(x == y) # True
print(x is y) # True
print(x is z)# True,整数池的原因

x = 257
z = 257
print(x is z)  # False

id相等的变量,值一定相等,指向的是同一个内存地址;值相等的变量,id不一定相等。

花式赋值

一丶链式赋值

a = b = c = d = 10
print(f'a:{a}, b:{b}, c:{c}, d:{d}')

二丶交叉赋值

x = 100
y = 200
temp = x
x = y
y = temp
print(f'x:{x}')
print(f'y:{y}') # x:200,y:100

x, y = y, x
print(f'x:{x}')
print(f'y:{y}') # x:100,y:200

注释

一丶注释

代码注释分单行和多行注释,单行注释用#,多行注释可以用三对单/双引号,使用三引号注释可以换行。

二丶添加注释的原则

  1. 不用全部加注释,只需要在自己觉得重要或不好理解的部分加注释即可

  2. 注释可以用中文或英文,但不要用拼音

    数据类型基础

    一丶什么是数据类型

    首先让我们回顾变量是什么:变量用来记录世界的状态。创建计算机的目的就是想要让计算机和人一样能够识别世间万物,既然计算机能够识别世间万物。那么我们来想想怎么让计算机来认识我呢?
    我们不讲计算机怎么认识我,我们聊聊你是怎么认识我的?如果是你,你是不是会通过我的名字、年龄、身高、性别和爱好认识我。那么可想而知计算机也可以这样认识我。那么如果用计算机中的变量去记录我的这些状态,我的年龄可以用19去记录,但是我的姓名可以使用数字去记录吗?我的爱好可以用数字去记录吗?如果你说你年龄的时候,你又会用18.5岁去形容你的年龄吗?可想而知,你是不会这样做的。
    通过上面一大段的陈述,其实可以明白数据类型指的就是变量值的不同类型,姓名可能是一种数据类型、年龄可能是一种数据类型、爱好可能又是另一种数据类型。

    二丶如何对数据类型进行分类

    变量的是用来反映状态以及状态变化的,毫无疑问针对不同的状态就应该用不同类型的数据去标识。

    三丶不同数据类型

    数字类型
    字符串类型
    列表类型
    字典类型
    布尔类型

    数字类型

  3. 数字类型

    1. 整形(int)

      1. 作用:表示人的年龄、各种号码、级别

      2. 定义:

        age = 18  # age = int(18)
        print(age)
        print(id(age))
        print(type(age))
        
        18
        1921150976
        <class 'int'>
        
      3. 使用方法:加减乘除、逻辑判断(大于、小于)

    2. 浮点型(float)

      1. 作用:表示身高、体重、薪资

      2. 定义:

        salary = 2.1  # salary=float(2.1)
        print(id(salary))
        print(type(salary))
        print(salary)
        
        1611865330144
        <class 'float'>
        2.1
      3. 使用方法:加减乘除、逻辑判断(大于、小于)

  4. 字符串类型

    1. 作用:表示名字、爱好

    2. 定义:

      name1 = 'nick'
      name2 = "egon"
      print(id(name1))
      print(type(name1))
      print(name1)
      
      2346984016336
      <class 'str'>
      nick
      
      
      name3 = """nick
      egon"""
      print(name3)
      
      nick
      egon
    3. 使用方法:字符串只能+、*和逻辑比较

      1. 注意:如果字符串内有引号,则包裹字符串的引号和字符串内部的引号不能相同
      2. 注意:字符串的乘法只能乘以数字。
      3. 注意:字符串比较大小,按照ASCII码比较
      4. 注意:字符串的比较是字母的顺序。
  5. 列表

    1. 作用:存放多个值。

    2. 定义:

      在[]内用逗号分隔开任意类型的值。

      hobby = 'read'
      hobby_list = [hobby, 'run', 'girl']
      print(id(hobby_list))
      print(type(hobby_list))  
      print(hobby_list)
      
      2050766486152
      <class 'list'>
      ['read', 'run', 'girl']
    3. 如何使用:

      1. 存不是目的,取才是目的,我们介绍列表索引取值的方法,牢记索引序号从0开始。

      2. hobby_list = ['read', 'run', 'girl']
        # 索引序号      0       1      2
        # 取出第二个爱好
        print(hobby_list[1])
        
        run
        hobby_list = ['read', 'run', ['girl_name', 18, 'shanghai']]
        # 取出girl的年龄
        print(hobby_list[2][1])
        
        18
  6. 字典

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

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

      ser_info = {'name': 'nick', 'gender': 'male', 'age': 19,  # 字典套列表
                   'company_info': ['oldboy', 'shanghai', 50]}
      print(id(user_info))
      print(type(user_info))
      print(user_info)
      
      2479795990672
      <class 'dict'>
      {'name': 'nick', 'gender': 'male', 'age': 19, 'company_info': ['oldboy', 'shanghai', 50]}
    3. 使用方法:字典取值方式不再依赖于索引,而是依赖于key,通过[key]即可获取key对应的value值。

      # 字典套列表
      user_info = {'name': 'nick', 'gender': 'male', 'age': 19,
                   'company_info': ['oldboy', 'shanghai', 50]}
      print(user_info['name'])
      print(user_info['company_info'][0])
      
      nick
      oldboy
      # 字典套字典
      user_info = {'name': 'nick', 'gender': 'male', 'age': 19, 'company_info': {
          'c_name': 'oldboy', 'c_addr': 'shanghai', 'c_num_of_employee': 50}}
      
      print(user_info['name'])
      print(user_info['company_info']['c_name'])
      
      nick
      oldboy
  7. 布尔型

    1. 作用:用于判断条件结果

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

    3. 使用方法:

      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 = {'nick','egon','jason'}
x,y,z = name_list

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

name_list = ['nick','egon','jason','tank']
x,y,z,a = name_list
x,_,z,_ = name_list

还能有一个更骚的操作,只可意会不可言传。

name_list = {'shiqi','zz','zhangyi','jinx','2019'}
x,y,*_,z = name_list

字典也是可以的,但是字典解压缩的是key。

info = {'name':'shiqizz','age':17}x,y = infoprint(x,y)

Python与用户的交互

一丶为什么交互?

让我们来回顾计算机的发明有何意义,计算机的发明是为了奴役计算机,解放劳动力。假设我们现在写了一个ATM系统取代了柜员,如果我们要在这台ATM上取款,那么这个ATM是不是会要求我们输入姓名、密码?是不是需要我们输入我们需要取款金额?这是不是就可以理解为一种交互。现在让我们了解下Python是怎么实现交互的。

二丶 如何交互?

input()

int(inpt())

str(888)

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

格式化输出的三种方式

一丶占位符

%s(针对所有数据类型)

如:

name = "十七zz"
height = 180
weight = 140
print('my name is %s,my height is %s,my weight is %s' %(name,height,weight))

my name is 十七zz,my height is 180,my weight is 140

二丶format 格式化

name = "十七zz"
height = 180
weight = 140
print('my name is {name},my height is {height},my weight is {weight}'. format(name=name, height=height, weight=weight))

my name is 十七zz,my height is 180,my weight is 140

三丶f -String格式

相比较占位符的方式,python3.6版本新增了f-String格式化的方式,比较简单易懂,这是目前我用的最多的方式,推荐使用这种方式。

name = "十七zz"
height = 180
weight = 140
print(f'my name is {name}, my height is {height},my weight is {weight}')
print(f'{name*2}')

my name is 十七zz,my height is 180,my weight is 140

十七zz十七zz

salary = 3.1415926
print(f'{salary:.3f}')

3.142

基本运算符

一丶算数运算符

a = 10 , b = 20.

029-基本运算符-算术运算符

二丶比较运算符

029-基本运算符-比较运算符

l1 = [1, 'a', 3]
l2 = [3]
print(l1 < l2)  # False,列表比较从左向右比较,不同数据类型无法比较。

True

三丶赋值运算符

029-基本运算符-赋值运算符

四丶逻辑运算符

029-基本运算符-逻辑运算符

五丶身份运算符

029-基本运算符-身份运算符

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

六丶Python运算符优先级

优先级高的括号括起来就行了.

029-基本运算符-python运算符优先级

流程控制之if判断

一丶语法

if判断是干什么的呢?if判断其实是在模拟人做判断。就是说如果这样干什么,如果那样干什么。对于ATM系统而言,则需要判断你的账号密码的正确性。

1.1 if

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

1.2 if...else

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

1.3 if...elif...else

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

二丶if的嵌套

# if的嵌套
cls = 'human'
gender = 'female'
age = 18
is_success = False

if cls == 'human' and gender == 'female' and age > 16 and age < 22:
    print('开始表白')
    if is_success:
        print('那我们一起走吧...')
    else:
        print('我逗你玩呢')
else:
    print('阿姨好')

猜你喜欢

转载自www.cnblogs.com/shiqizz/p/11279126.html
今日推荐