一、Python介绍

创始人吉多范罗苏姆(龟叔),脚本解释程序

应用领域广,数据分析、组件集成、网络服务、图像处理、数值计算和科学计算等。

主要应用领域:

云计算:OpenStack;

WEB开发:经典框架Django

科学运算、人工智能:典型库NumPy,SciPy,Matplotlib,Enthought librarys,pands

系统运维

金融:量化交易,金融分析,擅长策略回测

图像GUI:PyQT,WxPython,Tklnter

解释型语言:平台兼容性,灵活性,速度慢

动态类型语言:不用给任何变量指定数据类型,在第一次赋值的时候就会内部记录下来

强类型定义语言:变量被指定类型后,没有经过强制转换,数据类型就不可能改变

优点:易懂,开发效率高,移植性,扩展性,嵌入性

缺点:速度慢,不能加密,线程不能利用多CPU问题

解释器最广泛的是CPython

声明解释器#!/usr/bin/env python

二、变量:存储东西,为了调用

变量命名规则:第一个不能是数字,变量只能是字母、数字或下划线的组合。关键字不能声明为变量。变量名尽量使用英文单词。

三、字符编码:

发展历程:

ASCII 255 字节——1980 gb2312 7xxx——1995 GBK1.0 2w+——2000 GB18030 27xxx——Unicode 2字节——utf-8 en:一字节,zh:3字节。

Python解释器在加载.py文件中的代码时,会对内容进行编码(默认是ASCII),需要告诉解释器是用什么编码来执行源代码,即加入:# -*- coding: utf-8 -*-

注释:

当行注释:#被注释内容

多行注释:”””被注释内容”””

msg=’’’ ‘’’打印多行,用三个引号把需要打印的内容包含在里面,再赋予一个变量,最后打印变量就可以实现。

四、用户交互

Input()指令

第一种结合多行打印可以实现用户交互,利用字符拼接’’’ + 变量 +’’’

 # Author: JC

 name = input("name:")

 age = input("age:")

 job = input("job:")

 salary = input("salary:")

 info = '''
----------info of ''' + name + ''' ---------- Name:'''+ name + ''' Age:'''+ age + ''' Job:''' + job + ''' Salary:''' + salary print(info)

第二种方法格式化输出,在需要的位置添加%s,代表为string,当然可以为%d,但代表该位置只能接受数字,在程序后面需加上“%()”括号内的变量一一对应上面占用符,缺少时会报错。

 # Author: JC

 name = input("name:")

 age = input("age:")

 job = input("job:")

 salary = input("salary:")

 info = '''
---------- info of %s ---------- Name:%s Age:%s Job:%s Salary:%s ''' %(name ,name,age ,job ,salary ) print(info)

注意:

在python中默认所有的输入都会是字符串,除非强制转换数据类型

 age = input("age:")

 print(type(age)) 

通过type()指令可以查看数据类型,需要转为整型需要加入int()。

在python3中raw_input 和input是一模一样的,前者只在py2中存在。

在py2中input是输入是什么格式,所以就是什么格式,没有加上双引号会被自动默认为变量,系统会自动去寻找变量

第三种格式化输出,.format(),建议使用

 info = '''

 ---------- info of {_name} ----------

 Name:{_name}

 Age:{_age}

 Job:{_job}

 Salary:{_salary}

 '''.format(_name=name ,

             _age=age,

             _job=job ,

             _salary=salary)

format中还可以使用另一中输出,但同样不建议使用该输出模式,如下

 info2 = '''

 ---------- info of {0} ----------

 Name:{0}

 Age:{1}

 Job:{2}

 Salary:{3}

 '''.format(name ,age,job ,salary)

使用密文密码,调用标准库指令import,getpass是密文的库,但是在PyCharm中会用不了(可能是bug吧。。。),所以需要在编译器使用

 # Author:JC

 import getpass

 username = input("username:")

 password = getpass .getpass ("password:")

 print(username,password)

五、if-else流程判断:

在python中有个特点在if语句中写完会自动强制缩进,在同等级的时候不需要进行缩进,当存在上下级关系的时候进行缩进,如果上下级之间没有进行缩进就会被执行,如果自身就是顶级的时候,就需要顶格写,不然会报错。

 if _username == username and _password == password:

     print("Welecome user {name} login...".format(name =username ))

 else:

     print("Invlid username or password!")

 print("test")

if-else语句中还有一个elif语句,等同于c语言中的else if

猜年纪小游戏:利用判断语句if-else,根据用户输入的数字进行猜科比的年纪,分别得出三个答案,大于等于和小于。

例:

 # Author:JC

 kobe = 40

 guess_age = int(input("guess age:"))

 if guess_age == kobe:

     print("yes,you got it.")

 elif guess_age > kobe:

     print("think smaller...")

 else:

     print("think bigger!")
  

六、While循环语句

基本的一个while语句可以这样实现:会无限进行加一,true可以看成是循环语句中判断条件永远执行下去。

 count 0

 while True :

     print("count:",count)

     count = count + 1 #count +=1

修改猜年龄游戏:使用while语句,只能猜3次,出现正确答案或者超过3次的时候程序退出,同时超过3次错误打印文字。

例:

 kobe = 40

 while count < 3:

     guess_age = int (input("guess age:"))

     if guess_age == kobe:

         print("yes,you got it.")

         break

     elif guess_age > kobe:

         print("think smaller...")

     else:

         print("think bigger!")

     count += 1

 else:

     print("sorry..you tryed too many times...")

加入break语句,使得程序在判断正确的时候跳出循环(结束循环),最后一个else是程序循环中条件不成立的情况下执行,while-else搭配,python特殊的地方。和break语句对应还有一个continue语句,是跳出本次循环进行下一次循环。(可以通过设置断点使用debug进行查看程序过程这样更直观)

七、for循环语句:

实现打印0-9十位数

 for i  in range (10):

     print("loop:",i) 

等同于下面:第一个是0代表的是开始的数字,中间的10代表10次,第三个1是步长,修改为2的话就是隔两个输出,类推。

 for i  in range (0,10,1):

     print("loop:",i)

通过对for语句来对猜年龄游戏进行优化:

 kobe = 40

 for i in range(3):

     guess_age = int (input("guess age:"))

     if guess_age == kobe:

         print("yes,you got it.")

         break

     elif guess_age > kobe:

         print("think smaller...")

     else:

         print("think bigger!")

 else:

     print("sorry..you tryed too many times...")

猜年龄豪华玩法:游戏错误3次后进行询问用户是否进行继续,如果用户输入n则退出,否则继续进行

 # Author: JC

 kobe = 40

 count = 0

 while count < 3:

     guess_age = int (input("guess age:"))

     if guess_age == kobe:

         print("yes,you got it.")

         break

     elif guess_age > kobe:

         print("think smaller...")

     else:

         print("think bigger!")

     count +=1

     if count ==3:

         countine_cofirm = input("do you want to countine?")

         if countine_cofirm != 'n':

             count = 0

习题练习和扩展:

一、编写登陆接口:

  • 输入用户名密码
  • 认证成功后显示欢迎信息
  • 输错三次后锁定

二、多级菜单

  • 三级菜单
  • 可依次选择进入各子菜单
  • 所需新知识点:列表、字典

python 自学之路-Day one的更多相关文章

  1. Python自学之路---Day13

    目录 Python自学之路---Day13 常用的三个方法 匹配单个字符 边界匹配 数量匹配 逻辑与分组 编译正则表达式 其他方法 Python自学之路---Day13 常用的三个方法 1.re.ma ...

  2. Python自学之路---Day01

    目录 Python自学之路---Day01 注释 单行注释 多行注释 print()函数 语法 参数 实例 input()函数 语法 参数 实例 查看Python的关键字 代码 变量与常量 变量 如何 ...

  3. Python自学之路

    2020年春节,受新型冠状病毒影响,整个春节假期,全国人民都在恐慌之中,为了避免大家上班相互传染,公司号召国家政策,开始上班日期延迟,在家呆的实在太无聊,突然感觉自己不能浪费这美好的时光,决定学习Py ...

  4. 我的Python自学之路-003 字符串的知识

    '''字符串是以引号或者单引号括起来的任意文本,例如"123","asdfjk",'adfa'引号或者单引号,只是一种表示方法,并不是字符串的一部分如果字符串本 ...

  5. python 自学之路-Day Two

    Day1补充部分 模块初识 模块就是由其他人写好的功能,在程序需要的时候进行导入,直接使用,也叫库. 库有标准库和第三方库,所谓标准库,就是不需要安装就可以直接使用的,自带的:第三方库,就是需要进行下 ...

  6. Python自学之路——自定义简单装饰器

    看了微信公众号推送的一道面试题,发现了闭包的问题,学习时间短,从来没有遇到过这种问题,研究一下. Python函数作用域 global:全局作用域 local:函数内部作用域 enclosing:函数 ...

  7. 我的Python自学之路-002 字典的知识

    '''字典是python中唯一的验证类型,采用键值对(key-value)的形式存储数据.python对key进行哈希函数运算.根据计算的结果决定value的存储地址.所以字典是无序存储的.且key必 ...

  8. 我的Python自学之路-001 列表的知识

    #_date_:2020/9/11 '''列表和字典是python中用的最多的数据类型 假如要存储一个班级的人名,需要怎么做?有这么几种方法:1.定义很多个变量: name0 = 'wucaho' n ...

  9. 全面进攻python之前回顾下自己近三个月的自学之路

    人生是在一直试错的过程中成长起来的.这句话貌似很有道理,但回顾了下自己近三个月python自学学习之路,又觉得自己对这句话又有了新的看法------行动之前必须要有正确的选择,这样做错了才能成长. 2 ...

随机推荐

  1. hibernate多表查询封装实体

    以前用sql实现联合查询 是非常简单的事,只需要写sql语句就可以,第一次遇到hibernate要实现多表联合查询的时候还楞了一下.最后看了下资料,才恍然大悟,hibernate实现多表联合查询跟SQ ...

  2. 实现pc端信纸留言板

    效果如图: 我好像在哪里见过这样的形式,但却从来没有想过怎么实现,有种莫名的兴奋感.怎么控制什么时候换行,怎么控制中间的线条,这些视乎都是CSS无法实现的,我陷入了死局.寻找JS的做法,JS的挺复杂的 ...

  3. SSM-SpringMVC-11:SpringMVC中ParameterMethodNameResolver参数方法名称解析器

    ------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- 或许曾经的我们也见过一种方式http://localhost:8080/项目名/后台servlet?actio ...

  4. 《Systems Performance》阅读笔记及收获

    本文共三部分: 笔记之前的废话是和书结缘的过程: Systems Performance笔记是正文,记录了读书笔记以及一些实践: 一些优化记录将之前做的一些优化归纳起来,同时也能反思做的如何,加入跟G ...

  5. Ribbon负载均衡策略配置

    在这里吐槽一句:网上很多文章真是神坑,你不看还好,看了只会问题越来越多,就连之前的问题都没有解决!!! 不多说了,Ribbon作为后端负载均衡器,比Nginx更注重的是请求分发而不是承担并发,可以直接 ...

  6. Eureka源码分析:Eureka不会进行二次Replication的原因

    Eureka不会进行二次同步注册信息 Eureka会将本实例中的注册信息同步到它的peer节点上,这是我们都知道的特性.然而,当peer节点收到同步数据后,并不会将这些信息再同步到它自己的peer节点 ...

  7. 激活IDEA 2017.3 mac版 2018.05.21亲测可用

    本文激活方式不会导致IEDA打不开,可激活一年,最简便方式,只需要30秒. 1.修改hosts sudo vim /private/etc/hosts 在文件最后一行中添加: 0.0.0.0 acco ...

  8. 超实用的JavaScript代码段 Item5 --图片滑动效果实现

    先上图 鼠标滑过那张图,显示完整的哪张图,移除则复位: 简单的CSS加JS操作DOM实现: <!doctype html> <html> <head> <me ...

  9. Python爬虫-pyspider框架的使用

      pyspider 是一个用python实现的功能强大的网络爬虫系统,能在浏览器界面上进行脚本的编写,功能的调度和爬取结果的实时查看,后端使用常用的数据库进行爬取结果的存储,还能定时设置任务与任务优 ...

  10. Mongodb数据更新命令、操作符

    一.Mongodb数据更新命令 Mongodb更新有两个命令:update.save. 1.1update命令 update命令格式: db.collection.update(criteria,ob ...