Python1

Python简介

Python是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。
Python 的设计具有很强的可读性,相比其他语言经常使用英文关键字,其他语言的一些 标点符号,它具有比其他语言更有特色语法结构。

Python特点

1.易于学习:Python有相对较小的关键字,结构简单,和一个明确定义的语法,学习起来更加简单
2.易于阅读:Python代码定义的更清晰
3.易于维护:Python的成功在于它的源代码是相当容易维护的
4.一个广泛的标准库:Python的最大优势之一是丰富的库,跨平台的,在UNIX,Windows和Macintosh兼容很好
5.互动模式:互动模式的支持,您可以从终端输入执行代码并获得结果的语言,互动的测试和调试代码片段。
6.可移植:基于其开放源代码的特性,Python已经被移植(也就是使其工作)到许多平台
7.可扩展:如果你需要一段运行很快的关键代码,或者是想要编写一些不愿开放的算法, 你可以使用C或C++完成那部分程序,然后从你的Python程序中调用。
8.数据库:Python提供所有主要的商业数据库的接口。
9.GUI编程:Python支持GUI可以创建和移植到许多系统调用。
10.可嵌入:你可以将Python嵌入到C/C++程序,让你的程序的用户获得”脚本化“的能力。

为什么学习Python?

无所不在的编程语言
Python应用特别广,国内越来越多企业热衷于Python语言,像豆瓣、搜狐、知乎、网易、阿里、新浪、盛大等。
高效可靠的编程语言
我相信任何使用过Python的开发人员都会认同它的运行速度、可靠性以及效率。你可以在各种环境下使用或者部署Python,它只会有可忽略不计的性能损失。
高薪就业的编程语言
由于Python工程师需求增多,Python薪资也随之水涨船高。
北京Python工程师的平均月资能够达到19120元,而即使是应届毕业生,Python的起薪也大多数在10000元以上。
就业方向
1、常规软件开发
2、科学计算
3、自动化运维
4、云计算
5、web开发
6、网络爬虫
7、数据分析
8、人工智能

Python变量及命名规则

基本格式:
.py文件后缀
注释符:
单行注释:#
多行注释: ‘’‘多行注释’’’ 或者 “”“多行注释”""
内容格式:
#!/usr/bin/python3
#coding=utf-8(或者# -*- coding: UTF-8 -*-)
什么是变量?
存放数据的容器(菜篮子)

Python 中的变量不需要声明。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。

变量的基本命名规则:

  • 变量名只能包含数字、字母、下划线,并且只以字母或下划线去开头
  • 变量名中不能包含空格,可以使用下划线分割变量名
  • 变量名区分大小写,如name和NAME是两个不同的变量
  • 变量名不能使用Python关键字和函数名,即不能使用Python的保留下的特殊单词,如print
  • 变量名应该简短且具有描述性
  • 推荐使用驼峰或者是下划线命名(首字母大写)

驼峰法:
小驼峰式命名法: 第一个单词以小写字母开始;第二个单词的首字母大写,例如:myName、aDog
大驼峰式命名法: 每一个单字的首字母都采用大写字母,例如:FirstName、LastName
下划线命名法:就是用下划线“_”来连接所有的单词,比如send_buf

什么是常量?
所有字母大写就是常量

基本数据类型

在Python 中,变量就是变量,它没有类型,我们所说的"类型"是变量所指的内存中对象的类型,Python会帮助我们去判断存进变量的数据类型,我们可以使用type()查看变量的类型。
1.数字型(Numbers): int:有符号整型 long:长整型(也可以代替八进制和十六进制) float:浮点型 complex:(复数)
2.布尔型(Bool):true和false
3.字符串(String):字符串就是一系列字符,在Python中,用引号引起来的就是字符串,引号可以是单引号,也可以是双引号,但要是英文引号。
4.列表(List):列表是由一系列按顺序排列的元素组成。使用[]来定义,可以使用下标来进行查看元素、修改元素,且下标是从0开始的。
5.元组(Tuple):元组类似列表,使用()来定义,元组可以使用下标来取值,也可以使用for循环来取值,但元组定义后不能进行修改,除非重新赋值。
6.字典(Dictionary ):字典是一种Key-Value的数据结构,每个键对应一个值,使用{}来定义,可以通过键来查看、修改对应的值。
7.集合(Set)。是由一个或多个形态不同的组成的,构成集合的对象称做元素或成员。可以用大括号 { } 或 set() 函数创建。空集合创建用set()。
可变类型与不可变类型:
不可变类型:该对象所指向的内存中的值不能被改变。当改变某个变量时候,由于其所指的值不能被改变,相当于把原来的值复制一份后再改变,这会开辟一个新的地址,变量再指向这个新的地址
可变类型:该对象所指向的内存中的值可以被改变。变量(准确的说是引用)改变后,实际上是其所指的值直接发生改变,并没有发生复制行为,也没有开辟新的出地址,通俗点说就是原地改变
不可变数据:Number(数字)、String(字符串)、Tuple(元组) 、Fronzenset(不可变集合)
可变数据:List(列表)、Dictionary(字典)、Set(集合)
下标和切片
下标:下标就是编号,就好比超市中的存储柜的编号,通过这个编号就能找到相应的存储空间
字符串实际就是字符的数组,所以支持下标索引,列表、元组也支持下标。
注意下标是从0开始的
如果有字符串:name=‘abcdef’,在内存中的实际存储如下:
在这里插入图片描述
切片:切片是指对操作的对象截取其中一部分的操作。字符串、列表、元组都支持切片操作。
切片的语法:[起始:结束:步长]
注意:选取的区间属于左闭右开型,即从"起始"位开始,到"结束"位的前一位结束(不包含结束位本身)。
以字符串为例讲解。
如果取出一部分,则可以在中括号[]中,使用:

示例1:
name = ‘abcdef’
print(name[0:3]) # 取 下标0~2 的字符
结果为:abc

示例2:
name = ‘abcdef’
print(name[2:]) # 取 下标为2开始到最后的字符
结果为: cdef

示例3:
name = ‘abcdef’
print(name[1:-1]) # 取下标为1开始 到最后第2个之间的字符
结果为: bcde

示例4:
name = ‘abcdef’
print(name[::2]) # 从下标0开始到最后,步长为2
结果为: ace

示例5:
name = ‘abcdef’
print(name[1:5:2]) # 取下标为1开始到4之间的字符,步长2
结果为: bd

示例6:
name = ‘abcdef’
print(name[::-2]) # 从下标0开始到最后,步长为-2
结果为: fdb

如果想取出部分字符,那么可以通过小标的方法,(注意Python中下标从0开始)
name=‘abcdef’
print(name[0])
print(name[1])
print(name[2])
什么是标示符?
开发人员在程序中自定义的一些符号和名称。
标示符是自己定义的,如变量名 、函数名等。
标识符的命名规则同变量。
什么是关键字?
python一些具有特殊功能的标示符,这就是所谓的关键字。
在这里插入图片描述

关键字,是python已经使用的了,所以不允许开发者自己定义和关键字相同的名字的标示符。
在Python中,这里所说的输入,是Python获取用户的键盘输入,然后进一步去利用
Python2的输入:
raw_input():
demo:
pwd = raw_input(“请输入密码:”)
print ‘您刚刚输入的密码是:’, pwd
raw_input()的小括号中放入的是,提示信息,在获取数据之前给用户的一个提示
raw_input()在从键盘获取了数据以后,会存放到等号左边的变量中
raw_input()会把用户输入的任何值都作为字符串来对待
Python3中没有raw_input()函数,只有input()
并且 python3中的input与python2中的raw_input()功能一样
注意:input()接受表达式输入
python2输出
在这里插入图片描述
python3输出:【print() 】加括号
在这里插入图片描述

常见的格式化符号
在程序中,看到了%这样的操作符,这就是Python中格式化输出。
age = 18
name = “xiaohua”
print(“我的姓名是%s,年龄是%d”%(name,age))
\n 换行操作
在这里插入图片描述
运算符
算术运算符
在这里插入图片描述

赋值运算符
在这里插入图片描述

复合赋值运算符
在这里插入图片描述

比较运算符
在这里插入图片描述

逻辑运算符
在这里插入图片描述

数据类型转换
在这里插入图片描述

例题一:产生100以内的10个随机偶数并进行相加将结果打印

第一种方法

import random
sum=0
for i in range(1,10):
    a = random.randrange(0,100,2)
    sum+=a
print(sum)

第二种方法

import random
number = 0
k=1
for i in range(1,100):
    a=random.randint(1,100)
    if a % 2 == 0:
        k+=1
        number+=a
        print(a)
        if k==11:
            break
print(number)

第三种方法

import random
a = range(0,100,2)
b = random.sample(a, 10)
print(b)
sum=0
for j in range(1,10):
    sum+=b[j]
print(sum)

例题二:ping局域网存活主机

import re
import subprocess
ip_list1=[]
ip_list2=[]
for ip in range(1,256):
    str_ip = '192.168.1.'+str(ip)
    ftp_res = subprocess.Popen('ping %s -n 3' % str_ip, stdin=subprocess.PIPE, stdout=subprocess.PIPE, shell=True)
    res = ftp_res.stdout.read()
    str_res = res.decode("gbk")
    res_s = re.search("TTL", str_res)
    if res_s:
        ip_list1.append(str_ip)
    else:
        ip_list2.append(str_ip)
print('存活的主机:')
print(ip_list1)
print('无法ping通主机:')
print(ip_list2)

运行结果如下:

在这里插入图片描述
例题三:用户注册登录

name = 'admin'
passward = '123456'
name1 = input("请输入用户名")
passward1 = input("请输入密码")
if name1 == name and passward1 == passward:
    print("恭喜您,登录成功!")
else:
    print("账号或密码输入错误,请重新输入!")
    name1 = input("请输入用户名:")
    passward1 = input("请输入密码:")
    if name1 == name and passward1 == passward:
        print("恭喜您,登录成功!")
    else:
        print("账号或密码输入错误,请重新输入!")
        name1 = input("请输入用户名:")
        passward1 = input("请输入密码:")
        if name1 == name and passward1 == passward:
            print("恭喜您,登录成功!")
        else:
            print("今天输入已经超3次,请明天重试!")
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值