一、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. Using variables inside Postman and Collection Runner

    Variables are among the most powerful features in Postman. Using variables in your Postman requests, ...

  2. 报错 'dict' object has no attribute 'has_key'

    has_key方法在python2中是可以使用的,在python3中删除了. 比如: if dict.has_key(word): 改为: if word in dict:

  3. css3D的魅力

    前言: 最近玩了玩用css来构建3D效果,写了几个demo,所以博客总结一下.  在阅读这篇博客之前,请先自行了解一下css 3D的属性,例如:transform-style,transform-or ...

  4. box-shadow 详解及示例

    box-shadow  [bɑks] - [ˈʃædoʊ]   英文示意: box:盒,包厢 shadow:阴影,渐变   定义: box-shadow: none | <shadow> ...

  5. 电脑不识别U盘

    最近遇到这样一个问题,现把具体问题和解决方案给大家分享一下: 系统:win10 症状:插入U盘,系统提示插入U盘的声音提示,磁盘不显示,360 无图标 原因:USB驱动出现问题 对症下药: 插入U盘右 ...

  6. scoring_criteria.go

    package types // 评分规则通用接口 type ScoringCriteria interface {     // 给一个文档评分,文档排序时先用第一个分值比较,如果     // 分 ...

  7. registration_db.go

    , atomic.LoadInt64(&p.peerInfo.lastUpdate))         if now.Sub(cur) > inactivityTimeout || p. ...

  8. 【Canal源码分析】Canal Instance启动和停止

    一.序列图 1.1 启动 1.2 停止 二.源码分析 2.1 启动 这部分代码其实在ServerRunningMonitor的start()方法中.针对不同的destination,启动不同的Cana ...

  9. 加密算法:DigestUtils与java MessageDigest

    1.使用Spring的DigestUtils public class StringUtilTest { static final String TARGET = "changeme&quo ...

  10. 服务网关基于RPC的用法

    企业为了保护内部系统的安全性,内网与外网都是隔离的,企业的服务应用都是运行在内网环境中,为了安全的考量,一般都不允许外部直接访问.API网关部署在防火墙外面,起到一层挡板作用,内部系统只接受API网关 ...