前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【Python3】初识Python、基

【Python3】初识Python、基

作者头像
py3study
发布2020-01-02 17:13:44
3820
发布2020-01-02 17:13:44
举报
文章被收录于专栏:python3python3

1. python介绍

  • 发展史等等....
  • 减少开发成本

2. python与其他语言对比

  • C语言:代码-->机器码
  • 其他高级语言:代码-->字节码-->机器码

3. python种类

cpython:常用的python就是cpython,python代码-->字节码-->机器码(一行一行读取执行) 其他python:python代码-->字节码-->机器码 pypy:python代码-->字节码-->机器码(全部转换完再执行)pypy效率会比cpython要高,pypy是cpython的一个分支,关于pypy可参考知乎一篇文章:PyPy 为什么会比 CPython 还要快?

4. python基础

4.1 解释器:

  • 解释规则 windows:

python解释器+文件:c:python3.5python.exe d:s17day01helloworld.py python解释器内执行:c:python3.5python.exe

linux or mac: python解释器+文件:/usr/bin/python /data/s17/day01/helloworld.py python解释器内执行:/usr/bin/python

注: 在linux or mac系统上默认安装的是python2.x版本,如在linux or mac系统使用python,需注意下python版本。

  • 潜规则 .py 结尾(当然你也可以采用其他的结尾也是可以的,不怕team成员杀了你也可以写。其实主要还是为了规范,python服务器上用的比较多,看见.py也就会知道这是python程序)
  • 编码 编码发展:ASCII-->Unicode(万国码)-->UTF-8

编码种类与区别

编码

支持语言

字节位数

缺点

备注

ASCII

英语

8位

只支持英文

*

万国码

所有

至少16位

字节位数较大

*

UTF-8

所有

8+

*

对万国码压缩

GBK

中文、英文

16位

支持语言少

*

python编码相关:

  • 文件编码 文件编码创建文件时定义即可,或者在IDE中定义
  • 解释器编码 解释器编码需要在代码中标注,python3.x 版本不标注也是可以的(解释器默认编码为ASCII),但为了统一规范,在文件第二行标注 `# -*- coding:utf-8 -*-`

5. IDE

PyCharm

  • 使用 a.创建一个项目,指定代码路径与python解释器路径 b.创建一个文件夹 c.创建一个python script 文件 d.在py文件中右键, run xx.py
  • 文件编码 在pycharm中首先要设置文件编码,将文件默认文件编码设置为utf-8
  • 文件模板 修改python scripts文件模板,将python环境信息与编码信息定义在模板中
  • 改变大小 配置编辑器中文字大小,设置可以用鼠标滑轮控制文字大小

6. 注释

  • 单行注释: #
  • 多行注释: ``` ```

7. .pyc文件

当一个python文件导入另一个模块时候,会生成一个 .pyc文件,那么这个文件就是导入的那个文件的字节码。

8. 变量

python变量规则:

  • 字母
  • 数字(变量不能以数字开头)
  • 下划线
  • 不能以python内置关键字为变量
  • python中变量建议使用下划线分割(驼峰式也不会报错)

9. 输入、输出

  • 输入: a = input('请输入xxxx')
  • 输出: print (a)

10. 条件语句

  • 例1:
代码语言:javascript
复制
if 条件:
    ...
else:
    ...
  • 应用
代码语言:javascript
复制
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# Author:Chuncheng.Fan <xmzncc@gmail.com>

username = input("请输入用户名:")
password = input("请输入密码:")


if username  == 'fcc' and password == '123':
    print("欢迎登陆!")
else:
    print("用户名或密码错误!")
  • 例2:
代码语言:javascript
复制
if 条件:
    ...
elif 条件:
    ...
else:
    ...   
  • 应用:
代码语言:javascript
复制
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# Author:Chuncheng.Fan <xmzncc@gmail.com>

sex = input("请输入你的性别:")

if sex == "男":
    print("傻x,自己性别都忘了!")
elif sex == "女":
    print("...你在想想,你忘了你已经做了手术了吗...")
else:
    print("人妖.......")

11. 循环语句

  • while
代码语言:javascript
复制
while 条件:
    continue # 开始下一次循环
    break # 跳出所有循环
  • 例:
代码语言:javascript
复制
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# Author:Chuncheng.Fan <xmzncc@gmail.com>

i = 0
while i < 3:
    username = input("请输入用户名:")
    password = input("请输入密码:")
    if username == 'fcc' and password == '123':
        print("欢迎登陆!")
        break
    else:
        print('用户名或密码错误')
        i += 1

12. 练习

    1. 使用while循环输入 1 2 3 4 5 6 8 9 10
代码语言:javascript
复制
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# Author:Chuncheng.Fan <xmzncc@gmail.com>

i = 1
while True:
    if i == 7:
        i += 1
        continue
    print(i)
    i += 1
    if i == 11:
        break
    1. 求1-100的所有数的和
代码语言:javascript
复制
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# Author:Chuncheng.Fan <xmzncc@gmail.com>

value = 0
i = 1
while i < 101:
    value = value + i
    i += 1
print(value)
    1. 输出 1-100 内的所有奇数
代码语言:javascript
复制
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# Author:Chuncheng.Fan <xmzncc@gmail.com>

i = 1

while i < 101:
    if i % 2 == 1:
        print(i)
    i += 1
    1. 输出 1-100 内的所有偶数
代码语言:javascript
复制
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# Author:Chuncheng.Fan <xmzncc@gmail.com>

i = 1

while i < 101:
    if i % 2 == 0:
        print(i)
    i += 1
    1. 求1-2+3-4+5 ... 99的所有数的和
代码语言:javascript
复制
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# Author:Chuncheng.Fan <xmzncc@gmail.com>

value = 0
i = 1

while i < 100:
    if i % 2 == 1:
        value = value + i
        i += 1
    elif i % 2 == 0:
        value = value - i
        i +=1
print(value)
    1. 用户登陆(三次机会重试)
代码语言:javascript
复制
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# Author:Chuncheng.Fan <xmzncc@gmail.com>

i = 0

while i < 3:
    username = input("请输入用户名:")
    password = input("请输入密码:")
    if username == 'fcc' and password == '123':
        print("欢迎登陆!")
        break
    else:
        print("用户名或密码错误")
        i += 1

13. 运算符

13.1 算数运算

运算符

描述

实例

+

加 - 两个对象相加

a+b 输出结果30

-

减 - 得到负数或是一个数减去另一个数

a-b 输出结果-10

*

乘 - 两个数相乘或是返回一个被重复若干次的字符串

a*b 输出结果200

/

除 - x以y

b/a输出结果2

%

取模 - 返回除法的余数

b%a输出结果0

**

幂 - 返回x的y次幂

a**b为10的20次方,输出结果100000000

//

取整除 - 返回商的整数部分

9//2输出结果4,9.0//2.0 输出结果4.0

13.2 比较运算

运算符

描述

实例

==

等于 - 比较对象是否相等

(a==b)返回False

!=

不等于 - 比较两个对象是否不相等

(a!=b)返回True

<>

不等于 - 比较两个对象是否不相等

(a<>b)返回True,这个运算符类似!=

>

大于 - 返回x是否大于y

(a>b)返回False

<

小于 - 返回

b%a输出结果0

>=

幂 - 返回x的y次幂

a**b为10的20次方,输出结果100000000

<=

取整除 - 返回商的整数部分

9//2输出结果4,9.0//2.0 输出结果4.0

13.3 赋值运算

运算符

描述

实例

=

简单的赋值运算符

c=a+b 将 a+b的运算结果赋值为c

+=

加法赋值运算符

c+=a 等效于c=c+a

-=

减法赋值运算符

c-=a 等效于c=c-a

*=

乘法赋值运算符

c=a 等效于c=ca

/=

除法赋值运算符

c/=a 等效于c=c/a

%=

取模赋值运算符

c%=a 等效于c=c%a

**=

幂赋值运算符

c**=a 等效于c=c**a

//=

取整除赋值运算符

c//=a 等效于c=c//a

13.4 逻辑运算

运算符

描述

实例

and

布尔“与”-如果x为False,x and y 返回False,否则它返回y的计算值。

(a abd b) 返回True

or

布尔“或”-如果x是True,它返回True,否则它返回y的计算值。

(a or b)返回True

not

布尔“非”-如果x为True,返回False,如果x为False,它返回True。

not(a and b)返回False

13.5

运算符

描述

实例

in

如果在指定的序列中找到值返回True,否则返回False。

x在y序列,如果x在y序列中返回True。

not in

如果在指定的序列中没有找到值返回True,否则返回False。

x不在y序列中,如果x不在y序列中返回False。

14. python数据类型

14.1 数字

int(整型)

  • 在32位机器上,整数的位数为32位,取值范围为-231~231-1,即-2147483648~2147483647
  • 在64位系统上,整数的位数为64位,取值范围为-263~263-1,即-9223372036854775808~9223372036854775807

14.2 布尔值

真或假 1 或 0

14.3 字符串

字符串常用功能:

  • 移除空白
  • 分割
  • 长度
  • 索引
  • 切片

14.4 列表

代码语言:javascript
复制
name_list = ['alex', 'seven', 'eric']
或
name_list = list(['alex', 'seven', 'eric'])

基本操作:

  • 索引
  • 切片
  • 追加
  • 删除
  • 长度
  • 切片
  • 循环
  • 包含

14.5 元祖

创建元祖:

代码语言:javascript
复制
ages = (11, 22, 33, 44, 55)
或
ages = tuple((11, 22, 33, 44, 55))

基本操作:

  • 索引
  • 切片
  • 循环
  • 长度
  • 包含

14.6 字典(无序)

创建字典:

代码语言:javascript
复制
person = {"name": "mr.wu", 'age': 18}
或
person = dict({"name": "mr.wu", 'age': 18})

常用操作:

  • 索引
  • 新增
  • 删除
  • 键、值、键值对
  • 循环
  • 长度

14.7 其他

14.7.1 for循环

用户按照顺序循环可迭代对象中的内容, PS:break、continue

代码语言:javascript
复制
li = [11,22,33,44]
for item in li:
    print item
14.7.2 enumrate

为可迭代的对象添加序号

代码语言:javascript
复制
li = [11,22,33]
for k,v in enumerate(li, 1):
    print(k,v)
14.7.3 range和xrange

指定范围,生成指定的数字

代码语言:javascript
复制
print range(1, 10)
# 结果:[1, 2, 3, 4, 5, 6, 7, 8, 9]
 
print range(1, 10, 2)
# 结果:[1, 3, 5, 7, 9]
 
print range(30, 0, -2)
# 结果:[30, 28, 26, 24, 22, 20, 18, 16, 14, 12, 10, 8, 6, 4, 2]  

15. 练习题

  • 元素分类

有如下值集合

代码语言:javascript
复制
v1 = [11,22,33,44,55,66,77,88,99,90],

将所有大于 66 的值保存至字典的第一个key中,将小于 66 的值保存至第二个key的值中。 即:

代码语言:javascript
复制
{'k1': 大于66的所有值, 'k2': 小于66的所有值}
            
v2 = {'k1': [],'k2':[] }

答案:

代码语言:javascript
复制
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# Author:Chuncheng.Fan <xmzncc@gmail.com>

v1 = [11,22,33,44,55,66,77,88,99,90]
v2 = {'k1':[],'k2':[]}

for item in v1:
    if item > 66:
        v2['k1'].append(item)
    elif item < 66:
        v2['k2'].append(item)
print(v2)
  • 功能要求:
  1. = 2000

要求用户输入总资产,例如:2000 显示商品列表,让用户根据序号选择商品,加入购物车 购买,如果商品总额大于总资产,提示账户余额不足,否则,购买成功。

代码语言:javascript
复制
            goods = [
                {"name": "电脑", "price": 1999},
                {"name": "鼠标", "price": 10},
                {"name": "游艇", "price": 20},
                {"name": "美女", "price": 998},
            ]
            
            num = input('>>>') # 1
            num = int(num)
            goods[num]['price']
  • 用户交互,显示省市县三级联动的选择
代码语言:javascript
复制
dic = {
    "河北": {
             "石家庄": ["鹿泉", "藁城", "元氏"],
                    "邯郸": ["永年", "涉县", "磁县"],
            }
    "河南": {
             ...
                }
    "山西": {
            ...
                }
            }
            
            for v in dic.keys():
                print(v)
            inp = input('>>>')
            dic[inp]

16. 作业

  • 基于文件存储的用户登录程序(3次登录失败,锁定用户)

答案:

代码语言:javascript
复制
 #!/usr/bin/env python
# -*- coding: utf-8 -*-
# Author:Chuncheng.Fan <xmzncc@gmail.com>

f1 = open('db','r')
data = f1.read()
f1.close()

# 1.格式化数据

user_info_list = []
user_str_list = data.split('\n')
for item in user_str_list:
    temp = item.split('|')
    v = {
        'name': temp[0],
        'pwd': temp[1],
        'times': int(temp[2])
    }
    user_info_list.append(v)
print(user_info_list)

# 2.判断用户输入
count = 0
while count < 3:
    username = input('请输入用户名:')
    status = 0
    for user_login_info in user_info_list:
        if username == user_login_info['name']:
            if user_login_info['times'] >= 3:
                print('输入错误3次,用户已锁定,请联系管理员 ~')
                exit()
            else:
                count = 0
                status = 1
                pwd = input('请输入密码:')
                if pwd == user_login_info['pwd']:
                    print('用户 %s 登录成功!' %username)
                    user_login_info['times'] = 0
                    count = 3
                    break
                else:
                    if 0 == 2 - user_login_info['times']:
                        pass
                    else:
                        print('用户名或密码错误,请重新输入。')
                    user_login_info['times'] += 1

                if user_login_info['times'] >= 3:
                    print('输入错误3次,用户已锁定,请联系管理员 ~')
                    count = 3
                    break
    if status == 0:
        print('没有这个用户')
    count += 1

# 3.格式化并写入文件
new_db = ""
for user_login_info in user_info_list:
    user_info_str = user_login_info['name'] + "|" + user_login_info['pwd'] + '|' + str(user_login_info['times'])
    new_db = new_db + user_info_str + '\n'

f2 = open('db','w')
f2.write(new_db.strip())
f2.close()
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-10-14 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. python介绍
  • 2. python与其他语言对比
  • 3. python种类
  • 4. python基础
    • 4.1 解释器:
    • 5. IDE
    • 6. 注释
    • 7. .pyc文件
    • 8. 变量
    • 9. 输入、输出
    • 10. 条件语句
    • 11. 循环语句
    • 12. 练习
    • 13. 运算符
      • 13.1 算数运算
        • 13.2 比较运算
          • 13.3 赋值运算
            • 13.4 逻辑运算
              • 13.5
              • 14. python数据类型
                • 14.1 数字
                  • 14.2 布尔值
                    • 14.3 字符串
                      • 14.4 列表
                        • 14.5 元祖
                          • 14.6 字典(无序)
                            • 14.7 其他
                              • 14.7.1 for循环
                              • 14.7.2 enumrate
                              • 14.7.3 range和xrange
                          • 15. 练习题
                          • 16. 作业
                          相关产品与服务
                          文件存储
                          文件存储(Cloud File Storage,CFS)为您提供安全可靠、可扩展的共享文件存储服务。文件存储可与腾讯云服务器、容器服务、批量计算等服务搭配使用,为多个计算节点提供容量和性能可弹性扩展的高性能共享存储。腾讯云文件存储的管理界面简单、易使用,可实现对现有应用的无缝集成;按实际用量付费,为您节约成本,简化 IT 运维工作。
                          领券
                          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档