接触Python

Python解释器声明

在前面执行Python文件时,直接用命令python来执行,在linux上运行python时需要声明Python文件用哪个解释器来执行,执行方法跟shell脚本相像 ./first.py。

这里咱们就需要在 .py 文件的行首添加解释器声明了:

#!/usr/bin/python

解释器用来告诉系统,执行这个文件时需要调用哪个解释器。当然了再Linux系统里还要给这个文件执行权限:

chmod 755 hello.py

按规则来,每一个python文件都需要在行首加上解释器声明。


字符编码声明

python解释器在加载 .py文件中的代码时,会对内容进行编码(默认为ascll编码)
ASCII(美国标准信息交换码),因为计算机是有美国人发明的所以他先立的规矩。ASCII编码主要用于显示现代英语和其他西欧语言,其最多只能用 8 位来表示(一个字节),即:2**8 = 256,所以,ASCII码最多只能表示 256 个符号。
显然256个符号根本无法满足世界各国的文字需求,这时就有了Unicode编码(万国码),但是Unicode编码有浪费内存的缺点,本着节俭的宗旨UTF-8诞生了。
UTF-8,是对Unicode编码的压缩和优化,他不再使用最少使用2个字节,而是将所有的字符和符号进行分类:ascii码中的内容用1个字节保存、欧洲的字符用2个字节保存,东亚的字符用3个字节保存…

如果用ascii码显示中文的话会出现报错

#!/usr/bin/python
print("中文")

为了能让Python显示中文我们需要在第二行加上编码声明

#!/usr/bin/python
# -*- coding:utf-8 -*-
print("中文")

声明方式有多中,为了统一习惯我们统一用这一种方法声明。


注释

对内容注释以后,注释后的内容就不会被解释器编译,注释可以用来说明代码和文件的作用,适当的注释能帮助编写程序

单行注释

#注释内容       //在需要注释内容的行首加上一个“#”就可以把内容注释掉

多行注释
多行注释需要用三个单引号或三个双引号把需要注释的内容括起来

'''
需要注释的内容
需要注释的内容
'''

注释的另一个用处输出多行:
注释多行的单引号和双引号不只能注释,还可以用来输出多行

print'''
“The quick brown fox
 jumps over the lazy dog”
'''

如果需要注释的内容里面有单引号而且还需要注释多行,那应该怎么办呢?

"""
print('你好,世界')
print'''
My name is duyanqi
sha sha fen bu qingchu
'''
"""

从上面的实例我们知道了,单引号双引号(三个)都可以注释多行。


执行脚本传入参数

Python有大量的模块,从而使得开发Python程序非常简洁。类库有包括三中:

  • Python自带的模块
  • 业内开发的模块
  • 程序员自己开发的模块

Python有大量的内部模块,其中有一个sys模块,sys中sys.argv可以捕获执行python脚本时传入的参数。

调用sys模块:import 模块

#!/usr/bin/python
# -*- coding:utf-8 -*-

import sys        //调用sys模块,使用命令import
print sys.argv    //打印出捕获到的内容

输出结果

# ./hello.py /home/dyq
['./hello.py', '/home/dyq']        //会把所有的参数保存到集合中

pyc文件

执行python代码时,如果导入其他的.py文件
impory first.py
那么会自动生成一个与其同名的.pyc文件,该文件就是python解释器编译之后产生的字节码。
代码经过编译会产生字节码,字节码经过反反编译就能得到源码


变量

声明变量

>>> name='dyq'         //等号用来定义变量
>>> print name
dyq

变量名称的要求

  • 变量名只能含数字,字母,下划线
  • 不能以数字开头
  • 不能为pyhon内的关键字(这个不用记,如果有关键字时关键字会报错),关机字包括:
['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', 'yield']

变量的赋值

>>> name = 'dyq'
>>> name1 = 'wyx'

这里写图片描述

>>> name1 = 'dyq'
>>> name2 = 'dyq'

这里写图片描述


输出和输入

输出内容用print即可输出内容

pring("hello,world!")

输入用户名

#!/usr/bin/python
# -*- coding:utf-8 -*-

#Python2的写法
name = raw_input('请输入用户名:')
print name

#Python3的写法
name = input('请输入用户名:')
print ('你好',name)

另一个内置模块:getpass,输入密码时不可见,用法如下

#!/usr/bin/env python
# -*- coding:utf-8 -*-

import getpass        \\调用getpass内置模块

pwd = getpass.getpass('请输入密码:')    \\直接使用模块输入
print (pwd)

数据的基本类型

  • 字符串(str)
    定义字符串类型需要用单引号或者双引号括起来
>>> name = 'dyq'
>>> print(type(name))        //type用来显示字符类型
<class 'str'>
  • 数字(int)
    定义变量为数字时变量名后面直接跟数字,不用引号
>>> name = 123
>>> print (type(name))
<class 'int'>
  • 布尔值

布尔值只有True(真),Flash(假)
这个跟linux的shell一样,如果真则输出0,如果假输出1。


if判断语句

格式:

if 条件一:
    执行代码块
elif 条件二:
    执行代码块
elif 条件三:
    执行代码块
else:
    执行代码块

判断语句: if … else … ,是判断语句,如果条件成立(为真True)则执行 if 块,否则(else)执行else块,else子句是可选的。

单条件判断:用户登录验证

#!/usr/bin/python
# -*- coding:utf-8 -*-

#提示输入用户名称
#如果用户名或密码错误提示登录失败
#如果用户名密码正确提示登录成功

import getpass

name = input('请输入用户名:')
pwd = getpass.getpass('请输入密码:')

if name == 'xiaoming' and pwd == '123':
        print ('欢迎',name)
else:
        print ('登录失败')

多条件判断:

#登录不同的用户显示不同的权限
#用户 dyq 密码 dyq1 普通用户
#用户 wyx 密码 wyx1 特权用户
#用户 root 密码 root1 管理员用户

import getpass

name = input('请输入用户名:')
pwd = getpass.getpass('请输入密码:')

if name == 'dyq' and pwd == 'dyq1':
        print('欢迎普通用户',name)
elif name == 'wyx' and pwd == 'wyx1':
        print('欢迎特权用户',name)
elif name == 'root' and pwd == 'root1':
        print('欢迎管理员',name)
else:
        print('请核对用户名密码')

注意:

  • 变量使用前一定要声明
  • 内置模块使用时在最上面调用一次就行
  • 报错后看报错提示
  • 每个判断结束后最后都要加上冒号:
  • Python严格区分大小写
  • Python使用缩进(tbl)保持缩进相同
  • 判断语句会用到 “and” “or” “not” 灵活使用

判断语句嵌套
用户输入不同内容显示不同提醒,前提是密码都相同,这只是实验流程。

import getpass

name = input('请输入用户名:')
pwd = getpass.getpass('请输入密码:')

if pwd == '123':
        if name == 'dyq':
                print('欢迎VIP玩家')
        elif name == 'wyx':
                print('欢迎超级玩家')
        else:
                print('用户名不正确')
else:
        print('登录失败')

while 循环

格式

while 条件:
    代码块

运行流程
while判断条件,如果条件为真(True)则运行代码块,如果代码不为真(Flase)则结束循环,执行下一行。

#!/usr/bin/python
# -*- coding:utf-8 -*-

a = 0
while a<10:
    a = a+1
    if a == 5:
    continue
print(a)

注意:
while 语句要注意缩进格式,while循环会根据代码格式来确定执行到哪。

break:终止所有执行的循环

#!/usr/bin/python
# -*- coding:utf-8 -*-

a = 0
while a == 0:
    print(a)
    break
print ('ok')

continue 终止当前一次循环

a = 1
while True:
    if a == 7:
        a = a+1
        continue
        print (a)
    if a == 10:
        break
    a = a+1

实例:求1-100以内的所有偶数,用百分号 “%”可以求余数

>>> 3 % 2
1
a = 0
b = 0
while True:
    b = a%2
    if b == 0:
        print(a)
    if a >= 100:
        break
    a = a+1

实例:求1-100以内所有的奇数

a = 0
b = 0
while True:
    b = a%2
    if b == 1:
        print(a)
    if a >= 100:
        break
    a = a+1

实例:三次登录

import getpass

a = 0
while 0 <= 2:
    name = input("请输入用户名:")
    pwd = getpass.getpass("请输入密码:")
    if name == "dyq" and pwd == "123":
        print("登录成功")
        break
    elif a == 2:
        print("三次机会已用完")
        break
    else:
        a = a + 1
        print("请重新登录")

实例:求1-2+3-4+5 … 99的所有数的和

a = 1
b = 0
while a < 100:
    c = a%1
    if c == 1:
        b = a+b
    else:
        b = a-b
    a = a+1
print(b)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值