首页 > 技术文章 > 第二章 Python入门

L521Z 2019-09-24 17:21 原文

第二章 Python入门

1 环境的安装

  • 解释器:py2 / py3 (环境变量)

    • 文件 a.py

      #!/usr/bin/env python
      # -*- coding:utf-8 -*-
      
      print('你好')
      
    • 运行:解释器 文件路径

    • 在linux上有一种特殊的执行方法:

      • 给文件赋予一个可执行权限
      • ./a.py 【原理:linux自动去找文件的第一行/usr/bin/env python 这个是解释器路径,后面加a.py】
  • 开发工具:pycharm

    • 下载:

      • Profession 专业版 ,功能多,激活码获取地址http://idea.lanyus.com/,激活时选择中间的(激活码获取地址已不能使用,后续再发破解方法)
      • Community 社区版,免费的,功能相对较少
    • 操作:

      • 创建文件

      • 重命名

      • 鼠标滚轮实现字体缩放

      • Debug模式

        先加断点,然后以debug模式运行,然后点击一次运行运行一次。最后是模式切换

      • pycharm自动生成文件头部


2 第一个脚本(第一个文件)

print('这是我的第一个脚本')

3 编码

3.1 编码基础

  • ascii

    • 固定8位,只能用来表示英文及少部分符号
    • 能表示 2**8 个字符
  • unicode

    • 固定32位,包含所有语言

    • 能表示 2**32 个字符

    • ha --> ASCII 占用16位存储空间

      ha --> Unicode 占用64位存储空间

  • utf-8

    • 最少8位最多32位,中文固定占用3字节。是unicode的压缩形式
  • gbk

    • 中文占用2字节
  • gb2312

    • 中文用2字节。便于以后扩展建议使用utf-8,因为gbk不支持外文
  • 单位

    8bit = 1byte
    1024byte = 1kb
    1024kb = 1MB
    1024MB = 1GB
    1024GB = 1TB
    1024TB = 1PB
    1024PB = 1EB
    1024EB = 1ZB
    1024ZB = 1YB
    1024YB = 1NB
    1024NB = 1DB
    常用到TB就够了
    

3.2 python编码相关

对于Python默认解释器编码:

  • py2: ascii
  • py3: utf-8

如果想要修改默认编码,则可以使用:

# -*- coding:utf-8 -*- 

注意:

  • 对于操作文件时,要按照:以什么编写写入,就要用什么编码去打开。
  • cmd中可能无法运行python2代码的中文,因为命令提示符可能不是utf-8格式,需要使用 chcp 65001进行替换为utf-8,win10运行会进行报错,暂无官方说法

4 输出

print('想要输出的内容')

特殊:

  • py2:print "你好"
  • py3:print('你好')

注意:输出时既可以使用单引号,也可以使用双引号,但必须是成对使用。错误写法:print("你好')

5 数据类型

'alex' / "alex",一般称为字符串
666 , 一般称为数字/整型
True / False , 一般称为布尔类型
  1. 字符串:

    • 单引号
    • 双引号
    • 三引号 支持换行
  2. 整形

  3. 布尔型

  4. 输出:

    特殊

  • py2:print "你好"
  • py3:print("你好")

6 变量

content = '钓鱼要钓刀鱼'
content = 666
print(content)

变量的要求

  1. 变量名只能包含:字母/数字/下划线

  2. 数字不能开头

  3. 不能是python的关键字。

    ['and','as','assert','break','class','continue','def','del','elif','except','else','exec','finally','for','from','global','if','import','in','is','lambda','not','or','pass','print','raise','return','try','while','with','yield']

  4. 建议:

    • 见名知意:name = 'alex' age = 18
    • 用下划线链接:alex_add = "吴佩琦"
    • 补充:AlexDad = "吴佩琦"(驼峰式命名,不建议)

问:为什么要有变量?

为某个值创建一个“外号”,以后在使用时候通过此外号就可以直接调用。

7 综上练习题

# 第一题
age = 18
new_age = age +1
print(new_age)

# 第二题
name = "alex"
new_name = name + "sb"
print(new_name)

# 第三题
age = "666"
new_age = age + "666"
pirnt(new_age)

# 第四题
age = "666"
new_age = age + 666
print(new_age)

# 第五题
age = 6
new_age = age * 2 
print(new_age)

# 第六题
name = "alex"
new_name = name * 2
print(new_name)

# 第七题
age = 18
value = age > 19
print(value)

# 第八题
_ = 9
_9 = 9
9name = 'alex'
True = 9
print = 666

8 输入

user_name = input('请输入你的姓名')

注意:

  • input 输入得到的内容永远是字符串
  • py版本区别:
    • py2:name = raw_input('请输入姓名')
    • py3:name = input('请输入姓名')

实例:

user_naem = input('请输入你的姓名')
password = input('请输入你的密码')
# 用户名和密码拼接
content = '你的用户名是:' + user_name +';你的密码是:' + password
# 输出用户名和密码
print(content)

9 注释

# 单行注释
'''
多行注释
'''

10 条件判断

  1. 初级条件语句

    # 请实现一个功能:让用户输入性别,如果是 男,则输出:再见;如果是 女:则输出 来啊来啊;否则:滚
    gender = input('请输入性别:')
    '''
    如果是男生:打印再见
    如果是女:打印来呀来呀
    否则:滚
    '''
    if gender == '男':
    	print('再见')
    elif gender == '女':
    	print('来来')
    else:
    	print('滚')
    
  2. elif 条件

    # 请实现一个功能:让用户输入性别,如果是 男,则输出:再见;如果是 女:则输出 来啊来啊;否则:滚
    gender = input('请输入性别:')
    '''
    如果是男生:打印再见
    否则:打印来呀来呀
    '''
    if gender == '男':
    	print('再见')
    elif gender == '女':
        print('来来来')
    else:
    	print('滚')
    print('end')
    
  3. 练习题

    # 第一题:让用户输入一个数字,猜数字,如果数字 > 50,则输出:大了;如果数字 <= 50,则输出:小了
    num = input('请输入一个数字:')
    num = int(num)
    if num > 50:
        print('大了')
    else:
        print('小了')
    
    # 第二题:用户名密码登录
    user_name = input('请输入用户名:')
    password = input('请输入密码:')
    if user_name == 'alex' and password == 'oldboy':
        print('欢迎登陆')
    else:
        print('用户名或密码错误')
    

11 循环

while 循环

break关键字

continue关键字

# # 1.循环打印"人生苦短,我用PYTHON"
# while True:
#     print('人生苦短,我用python')
#
# # 2.while 后加入条件
# while 1>0 and 2>1:
#     print('死循环')
#
# # 3. 数字相加
# count = 1
# count = count + 1
# print(count)
#
# # 4. 请通过循环,让count每次循环 +1
'''
count = 0
while True:
    print(count)
    count += 1
'''
# 5. 通过循环打印1,2,3...10
'''
content = 1
while content <= 10:
    print(content)
    content += 1
    '''

# 6 请打印1,2,3,4,5,6,8,9,10
'''
第一种写法:
num = 0
while num<=6:
    num += 1
    print(num)
num = 8
while num <=10:
    print(num)
    num += 1
'''

'''
错误写法
# while num <= 10 and num != 7:
#     num += 1
#     print(num)
'''

'''
第二种写法:
count = 1
while count <= 10:
    if count != 7:
        print(count)
    count += 1
'''

'''
第三种写法:
count = 1
while count <= 10:
    if count = 7:
        pass
    else:
        print(count)
    count += 1
'''
# 7. 关键字:break
'''
while True:
    print(666)
    break    # 终止当前循环
print('结束')
'''

# 练习:通过break实现 1~10
'''
count = 1
while True:
    print(count)
    if count == 10:
        break
    count += 1
'''
# break 终止当前循环
'''
while True:
    print('你好')
    while True:
        print('666')
        break   # 终止当前循环
'''

# 8. 关键字:continue
# 示例:1,2,3,4,5,6,8,9,10
'''
count = 1
while count < 10:
    print(count)
    continue # 本次循环如果遇到continue,则不再继续往下走,而是回到while条件位置
'''
'''
count = 1
while count <= 10:
    if count == 7:
        count += 1
        continue
    print(count)
    count += 1
'''

# 9 while...else...
count = 1
while True:
    print(count)
    if count == 10:
        break
    count += 1
else:  # 不在满足while条件时触发,或 条件 == False; break 跳出无效
    print('else代码块')
print('结束')

12.字符串格式化

注意:

记得在格式化后面加 , 号表示结束

  • %s
  • %d
  • %%
# 字符串格式化
'''
name = input('姓名')  # ctrl + d  复制快捷键
do = input('在干什么')
template = '%s 在教室,%s'%(name,do,)
print(template)
'''

# 直接做占位符
# template = '我是%s,年龄%s,职业%s'%('alex',73,'程序员',)
# print(template)
# template = '我是%s,年龄%d,职业%s'%('alex',73,'程序员',)
# print(template)

# 如果想在格式化字符串中输出 % 号,必须使用两个 % 
# name = 'alex'
# template = '%s 现在的手机电量是100%%'%(name)
# print(template)

# 练习
name = input('请输入姓名')
age = input('请输入年龄')
job = input('请输入职业')
msg = '''
---------- info os Ales Li ----------
Name     :%s
Age      :%s
Job      :%s
---------------- end ----------------
'''
date = msg %(name,age,job,)
print(date)

13.运算符

  1. 算数运算符

    • 余数运算符 %

    • 幂次方运算符 **

    • 地板除(丢弃小数取整)运算符 //

# ----------   算术运算符  ----------


# -----  余数 % -----
# %在运算符中用来取余数
# value = 11 % 3
# print(value)

# 练习题:打印 1 ~ 100 之间的奇数
# num = 1
# while num <= 100:
#     if (num % 2) != 0:
#         print(num)
#     num += 1

# ----- 幂次方 ** -----
# val = 2 ** 8
# print(val)

# ----- 地板除 // -----
# val = 9 // 2
# print(val)

# 练习:计算 1 - 100 相加
# count = 1
# date = 0
# while count <=100:
#     date += count
#     count += 1
# print(date)
  1. 比较运算符
    • <=,>=,==,+,-,*,/
  2. 赋值运算符
    • += count +=1(count = count + 1 )
    • -=
    • %=
    • *=
  3. 逻辑运算符
    • and 两个多为真
    • or 一个为真
    • not 取反
# ---------- 逻辑运算符 ----------

# 二般情况下
## 小知识
# —— int
# —— str
# —— bool

# 数字转布尔值,只有0为False,其余都为True
# v1 = 1
# v2 = bool(v1)
# print(v2)

# 字符串转布尔值,只有空字符串为False
# v1 = "1"
# v2 = bool(v1)
# print(v2)

# 布尔值转换其他
# v1 = False
# v2 = str(v1)
# v3 = int(v1)
# print(v2)
# print(v3)
# **************************** 面试题 **************************
'''
    对于  or  来讲
    value = 1 or 9
    第一个值如果是转换成布尔值为真,则value = 第一值
    第一个值如果是转换成布尔值为假,则value = 第二值
    如果有多个 or 条件,则从左到右依次进行上述流程。
    示例:
        v1 = 0 or 1
        v2 = 8 or 10
        v3 = o or 9 or 8

'''

# 对于and,如果遇到
'''
    如果第一个值转换成布尔值是True,则value = 第二个值
    如果第一个值转换成布尔值是False,则value = 第一个值
    如果有多个and条件,则从左到右依次进行上述流程。
    示例:
        v1 = 1 and 9
        v2 = 1 and 0
        v3 = 0 and 7
        v4 = 0 and ""
        v5 = 1 and 0 and 9
        print(v5)
'''

# 综合,优先级为  () > not > and > or
v1 = 1 and 9 or 0 and 6
  • 总结

    # 运算级顺讯关系:
    # 幂运算              **   (5**2就是5的2次方)
    # 正负号            -x    +x
    # 算术操作符    *   /   //    +    -  %
    # 比较操作符   <  <=  >   >=   ==   !=
    # 逻辑运算符 not(高)   and(中)   or(低)
    

推荐阅读