Python 小白之进阶之路 1--变量以及常用的数据结构

Python  基础  -- 变量以及常用的数据结构

注: 本文按照为免费Python全栈教程系列的流程及内容编写

 

目录

Python  基础  -- 变量以及常用的数据结构

1. 变量的命名

2. 变量的赋值

3. 变量的数据类型

3.1 Number 数字类型

 3.2 字符串

3.3 列表 List

3.4 元组 tuple

3.5 字典 dict

3.6 集合 set

4. 变量的作用域


1. 变量的命名

  1. 变量命名不可以以数字开头,如4four,3man;

  2. 不推荐使用以下划线开头,下划线开头的内容在python中有特殊意义,如age,name;

  3. 推荐视同固定单词及其缩写,如skt=soket

  4. 以posix命名规则为主,posix命名规则单词全部小写,且所有单词之间以下划线连接,如my_first_love(实战中常用)

  5.  驼峰命名法:      所有单词自动连接,且每个单词首字母均大写,分为驼峰命名法和小驼峰命名法

    大驼峰命名法:所有单词首字母均大写,如MyFirstLove。
    小驼峰命名法:第一个单词首字母小写,其余均大写,如myFirstLove。

  6. 避开关键字和保留字

2. 变量的赋值

# 定义一个变量 
age = 18

# 定义多个变量进行统一赋值
a=b=c=18

# 定义多个变量进行不同赋值 (元组式赋值发)
a,b,c=3,5,6

3. 变量的数据类型

      python 属于弱类型编程语言,不用在定义的时候强制进行类型定义

      标准数据类型一共六种

      Number  数字, str  字符串类型, list 列表, tuple 元组, dictionary 字典, set 集合

3.1 Number 数字类型

        数字类型没有  包括 整数,浮点数,复数,布尔值等

        整数

        (1) 没有小数部分,表示个数的数字。

        (2) 包括自然数,0,负自然数

        (3) 整数分进制基本显示为十进制。二进制以0b开头,八进制以0o开头,十六进制 以0x开头

        浮点数

       (1) 其实就是小数

       (2) 浮点数定义的一些小技巧

#小数后不写,默认0
a = 3.

#小数前不写,默认0
a = .5 

#科学计数法  e/E 就是10的指数
a = 1.7e10
b = 1.7e-10

#相当于 a = 17,b =0.17

         复数

# j/J 表示虚部

a = 3+5j
b = 4+8J

print("a:",a)
print("b:",b)

        布尔值

        表示真假的值。只有两个值, True/False。布尔值可以跟数字直接操作。True 相当于1, False 相当于0

 3.2 字符串

        用来表示一串文字信息如何表示

        单引号 -- 一段字符中包含单双引号可以使用单引号

        双引号 -- 一段字符中包含双引号可以使用单引号

        如果一段文字中既使用了单引号又使用了双引号则可以\'或者\"进行转义

        单双引号只能表示一行

        三引号 -- 可以表示一个字符多于一行的字符串

 

#'单引号
a = '这是字符串'
#" 双引号
b = "这是字符串"
#'''三引号
c = '''这是字符串'''
# 只有三引号能换行 
d = '''这是个
     算得上是可以换行的程序员'''
#’单引号中的 " 
e = '这是"字符串'
#"单引号中的 ' 
e = "这是'字符串"
# '中的"使用\转义
a = '这是\'字符串'

       转义字符

  1. 用特殊方法表达一系列不方便写出的内容,如:回车键、退格键

  2. 用反斜杠:字符串中反斜杠后面一个或几个字符表示的已不是原来的意思,进行了转义

  3. 特殊的常用符:\'单引号 \单反斜杠 \"双引号 \b退格 \n换行 \r回车 \r\n

     4. 不同系统对换行操作有不同表示,以上均为 windows 操作系统下的转义字符

 

      字符串的格式化

      (1) 字符串中,利用% 表示一个特殊的含义,表示对字符进行格式化

     

%方式表示
格式 意思
%s  字符串
%c 字符
%d  十进制(整数)
%i 整数
%u 无符号整数
%o 八进制整数
%x 十六进制整数
%X 十六进制整数大写
%e 浮点格式1
%E 浮点格式2
%f 浮点格式3
%g 浮点格式4
%G 浮点格式5
%% 文字%
#单个
print("My bday is %s"%"2.18")
#多个
print("我叫%s,今年%d岁了" % ("小李", 20))

(2) 使用format 函数进行编程

使用 {} 和: 代替 %号,后面用 format 带参数完成 。{} 中填写 index ,format()函数中按照index 顺序写

#单 format参数 
s = "I love {}".format("liuhuang")

# 多个format参数
h = "{0}:a,{1}:b,when you need a, input {0}. when you need b, input {1}".format("abc",22)

# 通过key值获取变量
print("我叫{name},今年{age}岁了".format(name="小李", age=20))

# 传入对象进行对象变量赋值
class Person:
    def __init__(self,name,age):
        self.name,self.age = name,age
    def __str__(self):
        return '我叫{self.name}, 今年{self.age}岁了'.format(self=self)

print(str(Person('李阳',11)))


#通过下标,用于访问可迭代Collection(貌似是Java中的意义)
person=['小李',20]
'我叫{0[0]}, 今年{0[1]}岁了'.format(person)

#填充常跟对齐一起使用
#^、<、>分别是居中、左对齐、右对齐,后面带宽度
#:号后面带填充的字符,只能是一个字符,不指定的话默认是用空格填充
'{:>5}'.format('abc')
'{:<5}'.format('abc')
'{:^5}'.format('abc')
'{:*^5}'.format('abc')

#精度与类型f
'{:.2f}'.format(321.33345)

#b、d、o、x分别是二进制、十进制、八进制、十六进制
'{:b}'.format(17)
'{:d}'.format(17)
'{:o}'.format(17)
'{:x}'.format(17)

#用,号用来做金额的千位分隔符
'{:,}'.format(1234567890)

3.3 列表 List

https://blog.csdn.net/fandichao1998/article/details/82384471

3.4 元组 tuple

https://blog.csdn.net/fandichao1998/article/details/82390392

3.5 字典 dict

https://blog.csdn.net/fandichao1998/article/details/82388138

3.6 集合 set

https://blog.csdn.net/fandichao1998/article/details/82391109

4. 变量的作用域

  • 变量由作用范围限制

  • 分类:按照作用域分类

    • 全局(global): 在函数外部定义

    • 局部(local):在函数内部定义

  • 变量的作用范围:

    • 全局变量:在整个全局范围都有效

    • 全局变量在局部可以使用(即函数内部可以方位函数外部定义的变量)

    • 局部变量在局部范围可以使用

    • 局部变量在全局范围无法使用

  • LEGB原则

    • L(Local)局部作用域

    • E(Enclosing function locale)外部嵌套函数作用域

    • G(Global module)函数定义所在模块作用域

    • B(Buildin): python内置模块的作用域

  • 与Java的不同

    • java 中 if , for , while 中的变量都为局部变量,但是python中并没有这种局部变量

#每段代码进行分别测试

#全局变量
name = 'Tim' 

def f1():
    #局部变量
    age = 18 
    print(age,name)

#---------------------------------------------------


#内部函数中也可以定义全局变量
name = 'Tim' #全局变量

def f2():
    age = 18 #局部变量
    global name #定义全局变量
    name = 'Eric'
    print(age,name)
f2()
print(name)


#---------------------------------------------------

#使用global关键字提升局部变量为全局变量
#示例 

x = 0

def fun():
    global x
    x += 1
    print(x)
    # 函数自己调用自己
    fun()
    
# 调用函数
fun()


 

你可能感兴趣的:(python)