第二章 Python入门
第二章 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 , 一般称为布尔类型
-
字符串:
- 单引号
- 双引号
- 三引号 支持换行
-
整形
-
布尔型
-
输出:
特殊
- py2:print "你好"
- py3:print("你好")
6 变量
content = '钓鱼要钓刀鱼'
content = 666
print(content)
变量的要求
-
变量名只能包含:字母/数字/下划线
-
数字不能开头
-
不能是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']
-
建议:
- 见名知意: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 条件判断
-
初级条件语句
# 请实现一个功能:让用户输入性别,如果是 男,则输出:再见;如果是 女:则输出 来啊来啊;否则:滚 gender = input('请输入性别:') ''' 如果是男生:打印再见 如果是女:打印来呀来呀 否则:滚 ''' if gender == '男': print('再见') elif gender == '女': print('来来') else: print('滚')
-
elif 条件
# 请实现一个功能:让用户输入性别,如果是 男,则输出:再见;如果是 女:则输出 来啊来啊;否则:滚 gender = input('请输入性别:') ''' 如果是男生:打印再见 否则:打印来呀来呀 ''' if gender == '男': print('再见') elif gender == '女': print('来来来') else: print('滚') print('end')
-
练习题
# 第一题:让用户输入一个数字,猜数字,如果数字 > 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.运算符
-
算数运算符
-
余数运算符 %
-
幂次方运算符 **
-
地板除(丢弃小数取整)运算符 //
-
# ---------- 算术运算符 ----------
# ----- 余数 % -----
# %在运算符中用来取余数
# 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)
- 比较运算符
- <=,>=,==,+,-,*,/
- 赋值运算符
- += count +=1(count = count + 1 )
- -=
- %=
- *=
- 逻辑运算符
- 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(低)