Python-01 基础语法

初识Python

python是一门什么样的语言?

编译性和解释性

静态语言和动态语言

强类型定义和弱类型定义

从以上三个方面分析可以得出:Python是一们动态解释性的强类型定义语言。

Python的优缺点

优点:

1 优雅、明确、简单
2 开发效率高,拥有强大的第三方库
3 高级语言
4 可移植性
5 可扩展性
6 可嵌入性

缺点:

1 速度慢,极高速度要求不能满足
2 代码不能加密,咬明文展示
3 线程不能利用多CPU问题,一个python的解释器进程内又一条主线程,禁止多线程的并行执行。
4 等等

Python解释器

解释器有:Cpython,IPython,PyPy,Jython,IronPython等,其中使用最广泛的是CPython。如果要和Java平台交互,最好的办法是通过网络调用来交互,确保各个程序之间的独立性。

Python安装以及环境变量配置

第一步下载:

https://www.python.org/downloads/
第二步安装:

可以选择安装路径,默认安装路径是C:\python39
第三步:环境变量配置

右击计算机-->属性-->高级系统设置-->高级tab下-->环境变量
--> 系统变量-->选择path-->编辑-->新建-->C:\python39-->
一路确定即可
第四步: 验证
win+R -->cmd-->python
可以出现如下表示安装以及配置环境变量成功
Python 3.9.5 (tags/v3.9.5:0a7dcbd, May  3 2021, 17:27:52) [MSC v.1928 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.

第一个Python程序

创建一个hello.py的文件

print("Hello World!")

进入cmd->执行python hello.py,运行可以看到Hello World!

Python变量

变量的定义

name ="gavin"
上述代码声明了一个变量,变量名为: name,变量name的值为: "gavin"

变量定义的规则

1 变量名只能是字母、数字或下划线的任意组合
2 变量名的第一个字符不能是数字
3 以下关键字不能声明为变量名[and , 'as', 'assert , break', 'class', 'continue'; 'def , 'del , 'elif , 'else', 'except , 'exec', 'finally , "for , 'from','global', ' if , 'import , 'in', 'is' , 'lambda', 'not , 'or , 'pass', 'print , 'raise', 'return', 'try , while', 'with', 'yrield']
4 不可以带空格,不能以$开头

变量名的约定

1 变量名要做到见名知义
2 不要拿中文做变量名
3 变量名尽量不要写中文拼音
4 若变量名称过长,可以使用下划线分割,例如:gavin_birthday
5 简写的名字大写

命名方式

驼峰体:NumberOfStudents

下划线:number_of_students(官方推荐)

Python常量

在python中,没有一个专门的语法代表常量,程序员约定俗成用变量名全部大写代表常量。

PI=3.1415926.....

Python注释

当前行注释 :# 被注释的内容
多行注释: """被注释内容"""
多行注释中,可以使用三个单引号对或者使用三个双引号对
若对多行注释进行变量赋值,则可以对多行注释可以进行打印
单引号和双引号的使用需要间隔开。

Python2和Python3的主要区别

python2种默认不支持中文字符集
如果需要使用中文,则需要在.py文件中加上
# -*coding:utf-8 -*-
在python3中则可以直接使用中文

输入函数

默认输入的内容是字符串类型的
job = input("please input your job:")
print("your  job is ",job)
可以使用print(type(job))来检验
结果是:<class 'str'>

如果要输入一个整数类型的数据

则可以通过int()函数进行限制

# 字符串转化为数字
test = int(input("输入一个整数"))
print(type(test))
# 整形转化为字符串
print(type(str(test)))

输出函数格式化的方式

方式一:通过占位符

info = '''
   %s Info
name:%s
age:%s
sex:%s 
''' %(name,name,age,sex)
print(info)
# %s s 代表字符串
# %d d 代表整数
# %f f 代表浮点数

方式二:通过{name},{age}....的方式对应参数

info2 = '''
   {name} Info
name:{name}
age:{age}
sex:{sex}
'''.format(name=name
           ,age=age,
           sex=sex)
print(info2)

方式三:通过{0},{1}....的方式对应参数

info3 =  '''
-------- info of {0} -----
Name:{0}
age:{1}
sex:{2}
'''.format(name,age,sex)
print(info3)

方式四:通过字符串的拼接符号“+”进行拼接

name="gavin"
print("my name is "+name)
#这种拼接的方式效率低下,不建议多次拼接使用

模块导入,密码输入为密文,而不是明文

#导入模块
import  getpass

username = input("username:")
#password = input("password")
password = getpass.getpass("password:")
print(username,password)

程序结构设计

用户登录(If循环)

语法

if 判断条件:
    执行语句……
else:
    执行语句……
或者:
if 判断条件1:
    执行语句1……
elif 判断条件2:
    执行语句2……
elif 判断条件3:
    执行语句3……
else:
    执行语句4……

案例

#设定用户名和密码
_username = "gavin"
_password = "1234"

#输入用户名和密码
username = input("username :")
password = input("password :")
if username==_username:
    if password==_password:
        print("login in successful")
    else:
        print("password is error ,please input again")
else:
    print("username is error ,please input again")

猜数字游戏(While循环)

语法

while 判断条件(condition):
    执行语句(statements)……

案例

# Author :liqiang
# 猜测年龄,多次猜测
age_of_gavin = 25
count = 0;#次数
while True:
    guess_age = int(input("guess age:"))
    count+=1;
    if count<3:
        if guess_age == age_of_gavin:
            print('''你猜对了,真棒! 使用了 {count} 次'''.format(count=count))
            break
        elif guess_age > age_of_gavin:
            print("你猜大啦,再小点")
        else:
            print("你猜小啦,再大点")
    else:
        print('''{count}次机会用完'''.format(count=count))
        break

方式二:循环使用 else 语句

age_of_oldboy = 56

count = 0
while count <3:
    guess_age = int(input("guess age:") )
    if guess_age == age_of_oldboy :
        print("yes, you got it. ")
        break
    elif guess_age > age_of_oldboy:
        print("think smaller...")
    else:
        print("think bigger!")
    count +=1
else:
    print("you have tried too many times..fuck off")

猜数字(For循环)

语法

for iterating_var in sequence:
   statements(s)
for i in range(0,10,2):
    print(i)
 其中: 打印的数据包括0,但是不包括10 ,2代表步长,i就相当于索引

案例

​ 在 python 中,for … else 表示这样的意思,for 中的语句和普通的没有区别,else 中的语句会在循环正常执行完(即 for 不是通过 break 跳出而中断的)的情况下执行,while … else 也是一样。

# Author :liqiang
# 猜测年龄,多次猜测
age_of_gavin = 25
count = 0;#次数
for i in range(3):
    guess_age = int(input("guess age:"))
    if guess_age == age_of_gavin:
        print('''你猜对了,真棒! 使用了 {count} 次'''.format(count=i+1))
        break
    elif guess_age > age_of_gavin:
        print("你猜大啦,再小点")
    else:
        print("你猜小啦,再大点")
else:
    print('''{count}次机会用完,没有猜对噢'''.format(count=count+1))

通过序列索引迭代(for)

fruits = ['香蕉', '苹果',  '梨子','葡萄']

for index in range(len(fruits)):
   print ('当前水果 : %s' % fruits[index])
   print('''当前水果是 : {kind}'''.format(kind=fruits[index]))

Python嵌套循环

Python for的嵌套循环语法

for iterating_var in sequence:
   for iterating_var in sequence:
      statements(s)
   statements(s)

Python while的嵌套循环语法

while expression:
   while expression:
      statement(s)
   statement(s)

注意:可以在for循环中嵌入while循环,反之也可以在while循环中嵌入for循环

Python之break与continue

break-终止循环语句

break语句用来终止循环语句,即循环条件没有False条件或者序列还没被完全递归完,也会停止执行循环语句。

break语句用在while和for循环中。

如果您使用嵌套循环,break语句将停止执行最深层的循环,并开始执行下一行代码。

continue-跳出本次循环

continue 语句跳出本次循环,而break跳出整个循环。

continue 语句用来告诉Python跳过当前循环的剩余语句,然后继续进行下一轮循环。

continue语句用在while和for循环中。

注意:可以通过断点调试的方式进行演示,方便观察数据的变化。

模块初识

1、sys模块

import sys

print(sys.path)#打印环境变量

#导入模块时,先在当前目录进行查找,再到site-package查找,

#再去全局环境变量查找,如果都没有导入的模块名称,则报错

print(sys.argv)#打印脚本相对路径

print(sys.argv[2])#获取用户传入的第三个参数

2、os模块

import os

os.system("dir")#执行命令不保存结果

cmd_res=os.popen("dir").read()#执行命令后可以保存结果

os.mkdir("test_dir")#创建目录

3、.py2c是个什么东东

​ Python是一门先编译后解释的语言,执行时先查找pyc文件,存在直接调用,

​ 不存在则将编译结果保存到内存中,程序运行结束后,保存到pyc文件中

4、数据类型

数字类型

  ```python

整型、长整型、浮点型、complex复数

长整型:Python的长整型没有指定位宽,但也不是无限大

科学计数法:50000=5E4=5*10**4
```

布尔值

1或者0

True或者False

字符串

name = "gavin"

bytes数据类型

编码转换(string<-->bytes)

 encode('utf-8')编码成2进制,编码之前为utf-8

 decode('utf-8')用utf-8解码

 for example:

     编码:'aa'.encode('utf-8')

         b'\xe2\....'

     解码:b'\xe2\....'.decode('utf-8')

         'aa'

posted on 2021-08-01 22:46  liqiangbk  阅读(102)  评论(0编辑  收藏  举报

导航