Python基础语法入门

Python入门

一、python介绍

谈及Python,涉及两个意思,一层代表的是python这门语言的语法风格,另外一层代表的则是专门用来解释该语法风格的应用程序:python解释器。

python语言的三大特征:
    简单易学    丰富的第三方库        封装程度高
    
解释型 强类型 动态类型的语言

二、运行python程序的两种方法

方式一

交互式环境:
特点:1、即时运行代码
     2、无法永久保存代码
 
"""
C:Users野>python3
Python 3.9.0 (tags/v3.9.0:9cf6752, Oct  5 2020, 15:34:40) [MSC v.1927 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> print('hello world!')
hello world!
>>>
"""

方式二

写入文件
    python "D:a.py"
    
"""
C:Users野>python3 E:a.txt
hello world!

C:Users野>
"""

总结

1、交互模式下可以即时得到代码执行结果,调试程序十分方便
2、若想将代码永久保存下来,则必须将代码写入文件中
3、我们以后主要就是在代码写入文件中,偶尔需要打开交互式模式调试某段代码、验证结果。

三、运行python程序的三个阶段

python "D:a.txt"

1、先启动python解释器
2、python解释器会将a.txt的内容从硬盘读入内存
3、python解释器会解释执行刚刚读入内存的代码,识别python语法

四、注释

1、什么是注释
  注释就是对代码的解释说明,注释的内容不会被当作代码运行

2、为什么要注释
  增强代码的可读性

3、怎么用注释
    代码注释分单行注释和多行注释
    1)单行注释用 # 号,可以跟在代码的正上方或者正后方
    2)多行注释可以有三对双引号""" """

4、代码注释的原则:
    1)不用全部加注释,只需要为自己觉得重要或不好理解的部分加注释即可
    2)注释可以用中文或英文,但不要用拼音

五、变量

1、什么是变量
    量指的是事物的状态

    变指的是事物的状态是可以变化的

2、为何要用变量
    就是为了让计算机能够像人一样记住事物的某种状态,并且状态是可以发生变化的。
    详细的说:程序执行的本质就是一系列状态的变化,变是程序执行的直接体现,所以我们需要有一种机制能够反映或者说是保存下来程序执行时状态,以及状态的变化

3、如何用变量
    原则:先定义,后引用

解释器执行到变量定义的代码时会申请内存空间存放变量值,然后变量值的内存地址绑定给变量名,以变量的定义 age = 18 为例子,如下:

# 通过变量名即可引用到值,我们可以结合print()功能将其打印出来
print(age) # 通过变量名age找到值18,然后执行print(18),输出:18

六、变量名的命名规范

命名规范:
    1、变量名只能是 字母、数字或下划线的任意组合
    2、变量名的第一个字符不能是数字
    3、关键字不能声明为变量名,常用关键字如下:

七、变量名的命名风格

# 风格一:驼峰体
AgeOfTony = 56
NumberOfStudents = 80
# 风格二:纯小写下划线(在python中,变量名的命名推荐使用该风格)
age_of_tony = 56
number_of_students = 18

八、变量名的三大特征

1、id
    反映的是变量在内存中的唯一编号,内存地址不同 id 肯定不同
2、type
    变量值的类型
3、value
    变量值

基本数据类型

数字

# int整型
定义:age=10 #age=int(10)
用于标识:年龄,等级,身份证号,qq号,个数

# float浮点型
定义:salary=3.1 #salary=float(3.1)
用于标识:工资,身高,体重

字符串

作用: 用来记录人的名字,家庭住址,性别描述性质的状态
定义: name = 'Tony'
      address = '上海市浦东新区'
      sex - 'male'
      
 用单引号,双引号,多引号,都可以定义字符串,本质上是没有区别的,但是:
# 1、需要考虑引号嵌套的配对问题
msg = "My name is Tony , I'm 18 years old!" #内层有单引号,外层就需要用双引号

# 2、多引号可以写多行字符串
msg = '''
    今天天气真好
    今天天气真好
    今天天气真好
    今天天气真好
'''

列表

作用:用于标识:存储多个值的情况,比如一个人有多个爱好

# 在[] 内用逗号分隔,可以存放  n 个任意类型的值
定义:students=['egon','alex','wupeiqi',] #students=list(['egon','alex','wupeiqi',])

# 存放多个学生的信息:姓名,年龄,爱好
students_info=[['egon',18,['play',]],['alex',18,['play','sleep']]]
students_info[0][2][0] #取出第一个学生的第一个爱好
>>>: 'play'

字典

字典是一种映射类型,它的元素是键值对,字典的关键字必须为不可变类型,且不能重复。创建空字典使用{}。

字典是由很多值组成的集合

字典的索引被称为‘键’,键及键所关联的值叫键值对(类似于JAVA中的Map集合)

字典是另一种可变容器模型,且可存储任意类型对象

字典的每个键值 key => value 对用冒号 : 分割,每个键值对之间用逗号 , 分割,整个字典包括在花括号 {} 中

字典相关的嵌套、取值

info={
    'name':'egon',
    'hobbies':['play','sleep'],
    'company_info':{
        'name':'Oldboy',
        'type':'education',
        'emp_num':40,
    }
}
print(info['company_info']['name']) #取公司名


students=[
    {'name':'alex','age':38,'hobbies':['play','sleep']},
    {'name':'egon','age':18,'hobbies':['read','sleep']},
    {'name':'wupeiqi','age':58,'hobbies':['music','read','sleep']},
]
print(students[1]['hobbies'][1]) #取第二个学生的第二个爱好

布尔

布尔值,一个True 一个 False,即判断一个条件成立时,用True标识,不成立则用False标识。

#所有数据类型都自带布尔值
1、None,0,空(空字符串,空列表,空字典等)三种情况下布尔值为False
2、其余均为真 

基本运算符

算数运算符

比较运算符

赋值运算符

逻辑运算符

 流程控制

与用户交互

接收用户输入

inp_name = input('请输入您的用户名')   # input会把所有输入的内容存储为字符串类型

格式化输出

附加小知识点

while True:
   data = input('>>>:')              #输入数据
   if not data:                   #如果data为假(即data为空)
       print("data为空")
   else:                        #如果data不为空
       print(data)
       print("data不为空")

流程控制之if判断

什么是判断

判断 条件:
    做xxx
否则:
    做yyy

为何要判断

为了让计算机像人一样根据条件的判断结果去做不同的事情

如何用判断

if 条件1:
    代码1    
    代码2
    代码3
elif 条件2:
    代码1    
    代码2
    代码3
......
else:
    代码1    
    代码2
    代码3

示例

inp_name = 'egon'
inp_pwd = '123'

print('start...)

db_name = 'egon'
db_pwd = '456'
print('start....')
if inp_name == db_name and inp_pwd == db_pwd:
    print('登录成功')
else:
    pritn('用户名或密码错误')

print('end...')

流程控制之while循环

什么是循环

循环就是重复做某件事

为何要有循环

为了控制计算机能够像人一样去重复做某件事

如何用循环

基本语法

while 条件:
    代码1
    代码2
    代码3

基本用法

count = 0
while count<5:
    count += 1
    print(count)

结束while循环的两种方式

  方式一:把条件改为False

  特点:得等到本次循环体代码运行完毕之后,下一次循环判断条件时才会生效

i = 0
tag = True
while tag:
    if i == 5:
        tag = False
    print(i)
    i+=1

  方式二:break代表结束本层循环

  特点:立即干掉本层while循环

i = 0
tag = True
while tag:
    if i == 5:
        # tag = False
        break
    print(i)
    i+=1

嵌套多层的while循环

# 方式一:
while True:
    while True:
        while True:
            break
        break
    break

# 方式二:
tag= True
while tag:
    while tag:
        while tag:
            tag = False

while+continue

结束本次循环,直接进入下一次循环

count = 0
while count<6:
    count+=1
    if count == 2 :
        continue  # continue 同级别之后千万别写代码,写了也不会运行
    print(count,end='')

continue 一定不要加在最后一步

i = 0
while i < 6:
    i +=1
    if i == 2 or i == 4:
        continue
    print(i,end = ' ')

while+else

else的子代码会在while循环正常死亡时运行,没有被break干掉就叫正常死亡

username = 'Egon'
password = '123'
count  = 0
while count < 3:
    inp_name = input('请输入用户名:').strip()
    inp_pwd = input('请输入密码:').strip()
    if inp_name == username and inp_pwd == password:
        print('登录成功')
        break
    else:
        print('用户名或密码输入错误')
        count += 1
else:
    print('输入次数超过三次,系统已锁定')

while 语句中的 elsefor 语句的else的效果是一样的,同样是:
循环中出现跳出中断则不执行else语句,如果执行完毕没有出现中断,则执行else语句

流程控制之for循环

for循环的基本用法

names = ['egon','tom','alex']
# while循环编写:
i = 0
while i < len(names):
    print(names[i])
    i+=1
# for循环编写:
for x in names:
    print(x)



dic = {'k1':111,'k2':'222','k3':'444'}
for x in dic:
    print(x,dic[x])

for x in 'hello':
    print(x)

for+break

for i in [11,22,33,44]:
    if i == 33:
        break
    print(i)

>>>:
11
22

for+continue

for i in [11,22,33,44]:
    if i == 33:
        continue
    print(i)

>>>:
11
22
44

for+else

username = 'Egon'
password = '123'
for i in range(3):
    inp_uname = input('请输入用户名:').strip()
    inp_pwd = input('请输入密码:').strip()
    if inp_uname == username and inp_pwd == password:
        print('登录成功')
        break
    else:
        print('用户名或密码输入错误')
else:
    print('输入次数超过三次,系统已锁定')

这是一个简易的登陆程序,共计循环3次,输入正确跳出循环,输入错误进行下一次循环,如果输入错误三次则程序结束,并提示用户"系统已锁定"

输入正确跳出时与for匹配的else不执行,输入错误三次后else语句后的代码执行
根据这个简易程序可以得出:
1、当for循环没有跳出的情况下执行完毕,则执行else后的语句
2、当for循环时出现跳出的情况时,else后的语句不执行

range()


range()函数可以创建一个整数列表,一般用在for循环中

函数语法:

 

range(start,stop[,step])

参数说明:
start:计数从start开始。默认是从0开始。例如range(5)等价于 range(0,5)
stop:计数到stop结束,但不包括stop。例如range(0,5)是 [1,2,3,4] 没有5
step:步长,默认为1.例如:range(0,5)等价于range(0,5,1)

示例:
>>>range(10) # 从 0 开始到 10 
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 

>>> range(1, 11) # 从 1 开始到 11 
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 

>>> range(0, 30, 5) # 步长为 5 
[0, 5, 10, 15, 20, 25] 

>>> range(0, 10, 3) # 步长为 3 
[0, 3, 6, 9] 

>>> range(0, -10, -1) # 负数 
[0, -1, -2, -3, -4, -5, -6, -7, -8, -9] 

>>> range(0) 
[] 

>>> range(1, 0) 
[]

for+range()

# for + range
for i in range(10,3,-1):
    print(i,end=' ')

>>>:
10 9 8 7 6 5 4

for+enumerate()

 详情参见:https://blog.csdn.net/abc13526222160/article/details/84259915

语法:enumerate(X,[start=0])  单词意思是枚举的意思,是python中的内置函数
函数中的参数X可以是一个迭代器(iterator)或者是一个序列,start是起始计数值,默认是从0开始。X可以是一个字典。

for item in enumerate(['egon','tom','jack']):
    print(item)

>>>:
(0, 'egon')
(1, 'tom')
(2, 'jack')


for i,item in enumerate(['egon','tom','jack']):
    print(i,item)

>>>:
0 egon
1 tom
2 jack

Python中break和continue的区别

1、break跳出整个循环,而continue跳出本次循环
2、continue语句用来告诉python跳过当前循环,进行下一次循环
3、break语句用来终止循环语句,即循环条件没有False条件或者序列还没被完全递归完,也会停止执行循环语句

附加小知识点

pass

作用:不做如何作用,只起到占位的作用。循环中使用pass不会跳出循环

for i in "python":
    if i == "t":
        pass
    print(i, end="")
#程序执行结果为:python
原文地址:https://www.cnblogs.com/ZhZhang12138/p/14866981.html