装了python2.7,去图书馆借了python入门经典,暂且简单写下学习笔记,以供自己回忆

学习笔记(一)主要是基础语法部分:

  1.python中数字以及字符串的使用;

  2.输入与输出语句;

  3.逻辑用语;

  4.循环语句;

  5.列表以及字典的使用;

  6.函数的调用;



本来是发在 https://polebug.github.io 上的(推荐去这里看,页面什么的会更好一些)

感觉博客园放着很久没用了,就顺便同步一下~

以下为学习笔记(一)正文:

python中数字的使用

变量类型

int,float,string就不说了

这里注意下面几种类型的使用:(下面会具体讲)

  long:长整型(不是long long),最长的数字的长度取决于计算机有多大的内存;

  list :功能类似于数组,用[]表示,里面的值可以改变;

  tuple:用()表示,里面的值不可以改变;

  dictionary:可列出已经配对的键和值;

(查看变量类型,可用type()查看)

  • 支持强制转换变量类型,例如float(2);
  • 变量命名

  • python对于变量名的限制:不能用数字开头,不能过长,不能包括特殊符号(除下划线);

  • 对于变量命名的特殊点:大多数情况下变量名全部是小写。若不想变量的值被修改,才把变量名全部大写,作为一个常量;
  • 数学运算

    基本运算没见过的就是:floor除法的符号为//,求幂的符号为**;

    运算优先级以及比较问题就不说了

    python中string的使用

  • 字符串创建,用‘ ’或者“ ”都可以进行赋值

  • 识别大小写和空格
  • 字符串有关的函数使用:

      len():返回字符串长度;

      .upper():全部转换成大写;

      .lower():全部转换成小写;

      .capitalize():把首字母转换成大写,其余转换成小写;

      .title():把首字母以及每个空格或者标点符号后的字母转换成大写,其余字母转换成小写;

      is_alpha():检查一个字符串是否全由字母组成;

      .strip()

        1.删除字符串开头和结尾的所有空格;

        2.删除指定的字符,例如:.strip('*');

        3.rstrip()只删除开头的字符;.lstrip()只删除结尾的字符;

      .count(' '):返回一个字符串在另一个字符串中出现的次数;

      .find(' '):返回某个字符串第一次出现的位置,若没有找到返回-1;

      .replace('string1', 'string2'):将string1替换为string2;

    注:使用这些函数之后,字符串自身的值并未发生改变

    字符串的运算:

  • 加法: (string) + (string)

        (string) + " " +(string)

  • 乘法: (string)*(int)

        其中int得是非负整数
  • 不存在减法和除法运算

    处理输入和输出

    输入:

      input():用于收集信息,不能接受没有引号括住的字符串;

      raw_input():用于收集任何非数字的信息,会把用户输入的任何内容都保存为一个字符串;

             raw_input()函数内还可以加入提示内容;

      这个地方举个例子:

    >>> s = input()  //input的用法
    "hello world"
    >>> s
    'hello world'
    
    >>> name = raw_input("What is your name?")  //raw_input()的用法
    What is your name : Polebug
    >>> name
    Polebug 

      import语句:允许我们从用户获取信息且同时隐藏用户输入

      举个例子:

    >>> from getpass import getpass
    >>> my_password = getpass()
    Password :
    >>>my_password
    'hello_world'

      其中,getpass()中可加提示语句。举个例子:

    >>> for getpass import getpass
    >>> my_password = getpass("Password, please : ")
    Password, please : 

      如果getpass()未添加提示语句,则默认输出"Password : "进行提示;

    输出:

      相比于c的输出语句printf("%d",...);python是使用{}来确定变量输出的位置;而对于多个{}并列使用时输出顺序,则是由{}的先后,或者是变量,或者是{}中的数字决定。分别举例:

    >>> Example1 = "{},{}!"
    >>> a = "Hello"
    >>> b = "world"
    >>> print Example1.format(a, b)
    Hello, world!
    
    >>> Example2 = "{first}, {second}!"
    >>> a = "Hello"
    >>> b = "world"
    >>> print Example2.format(first = a , second = b)
    Hello, world!
    
    >>> Example3 = "{0}, {1}!"
    >>> print Example3.format('Hello', 'world')
    Hello, world!

    逻辑用语

  • if,else以及elif唯一执行第一条为真的语句。

     注意一下末尾的冒号。

  • 使用try/except避免错误:用try进行尝试,如果出现程序崩溃,执行except语句(同样需要冒号)
  • 注意一下,python中逻辑语句以及循环语句,根据缩进判断执行到哪一句;
  • 循环语句

    //同样支持break,continue语句,注意一下缩进
    
    //使用range()语句进行循环
    >>> range(7)                                            //for i = 0 ~ 6
    >>> range(1,5)                                          //for i =1 ~ 4
    >>> range(1,5,2)                                        //for (i=1;i<5;i+=2)
    
    //python中的for语句,注意for语句末尾的冒号;
    >>> for i in range(1,5) :                               //遍历range
    ...     print i
    ...
    1
    2
    3
    4
    >>> Number = [1, 2, 3]                                  //遍历list
    >>> for i in Number :
    ...     print "The number is : {}".format(i)
    ...
    The number is : 1
    The number is : 2
    The number is : 3
    
    //while语句的使用,跟c++用起来差不多,随便举几个例子
    >>> while True :
    >>> while not Name.isdigit() :

    python中列表list的使用

    python中列表的作用以及操作和c++里的数组很相似,实现和逻辑方面都简单说一下

    //创建列表
    >>> List = []                                               //创建空列表
    >>> List = [ 1, 2, 3, 4 ]                                   //创建包含有数字1,2,3,4的列表
    >>> List = ['one', 'two', 'three', 'four' ]                 //创建包含有字符串one , two, three, four的列表
    
    //赋值的逻辑问题
    >>> a = 1;
    >>> b = 2;
    >>> List = [ a, b ]
    >>> a = 3
    >>> List
    [1, 2]
    
    //使用len(),获知列表中有多少项
    >>> Number = [ 1 , 2 , 3 ]
    >>> len(Number)
    3
    
    //使用.count()统计所出现的次数
    >>> Number = [1 , 1 , 2 ]
    >>> Number.count(1)
    2
    
    //使用.index()找到某一项在列表的位置,注意一下,引索是从0开始编号
    >>> Number = [1 , 2 , 3 ]
    >>> Number.index(3)
    2
    
    //使用.append()往列表里添加项
    >>> Number = []
    >>> Number.append(1)
    >>> Number
    [1]
    
    //使用.append()往列表里添加项
    >>> Number = []
    >>> Number.append(1)
    >>> Number
    [1]
    
    //判断某项是否在列表里
    >>> Number = [1 , 2 , 3 ]
    >>> 1 in Number
    True
    >>> 4 in Numer
    False
    
    //使用.remove()删除项
    >>> Number = [1, 2, 3 ]
    >>> Number.remove(1)
    >>> Number
    [2, 3]
    
    //使用.insert(x, a)将a添加在第x项上
    >>> Colors = ['red', 'yellow', 'green']
    >>> Colors.remove(1, 'orange')
    >>> Colors
    ['red', 'orange', 'yellow', 'green']
    
    //列表运算
    >>> A = [1, 2 ]
    >>> B = [3, 4 ]
    >>> A + B                                   //两个列表相加
    [1, 2, 3, 4]
    >>> A*3                                     //列表乘以一个常数,列表*列表会报错
    [1, 2, 1, 2, 1, 2 ]
    
    //使用.reverse()反转列表所有的项的顺序
    >>> Number = [1, 2, 3, 4 ]
    >>> Number.reverse()
    >>> Number
    [4, 3, 2, 1]
    
    //使用.sort()对整数/浮点数/字符串进行升序排列
    >>> Number.sort()
    
    //比较两个列表是否相同,返回True/False;注意一下,判断两个列表是否完全一样,还包括项的顺序的比较
    //判断不等于同理
    >>> Number1 == Number2
    False

    使用字典dictionary匹配键和值

    python中字典的功能有点像哈希表,但相比于c++实现的哈希映射,字典使用起来简单很多

    字典的使用主要是以下几种:

    //创造字典
    >>> states = {}                                                     //空字典
    >>> states = {"V": "R", "M": "A"}                                   //字符串匹配字符串
    >>> states = {1: "R", 2: "M"}                                       //数字匹配字符串或字符串匹配数字均可
    >>> states = {1: 2, 3: 4}                                           //数字匹配数字
    
    //临时添加键和值
    >>> states = {"V": "R"}
    >>> states ['M'] = 'A'
    >>> states
    {'V': 'R', 'M': 'A'}
    
    //使用.pop()删除一个键
    >>> states.pop("M")
    
    //查看字典中是否使用了某个键
    >>> states.has_key('M')                                             //使用.has_key()查看
    True
    >>> 'M' in states                                                   //使用关键字in查看
    
    //查看字典中所有的键和所有存储的值
    >>> states.keys()
    >>> states.values()
    
    //比较两个字典是否相等时,不根据特定的顺序进行比较

    注:如果字典中有两个键相同,但是值不同,查询键时返回最后一个匹配的值

    举个例子:

    >>> number = {1:2, 1:3}
    >>> number [1]
    3

    python中函数的调用

    //创建一个函数
    >>>def function_name(parameter1, parameter2) :
                code
    >>> function_name(parameter1, parameter2)
    
    //设置默认值
    >>>def print_welcome(first, last, middle=' '):
    ...         print "welcome, {} {} {} !".format(first, middle, last)
    (注意:设置默认值的规则之一是在函数定义中最后定义参数的默认值)
    
    //返回值
    >>> return a, b, c
    
    //在函数内创建的变量不能在函数外引用
    
    //调用脚本
    if _name_ == "_main_" :
        main()
    
    //使用**kwargs添加到参数列表的末尾,如果存在关键字,将获取用户传递给函数的任何值(kwargs是标准名)
    >>> def args(first, **kwargs) :
    ...         print first
    ...         print kwargs
    ...
    >>> args (first="hello", kwargs="world")
    hello
    {'kwargs' : 'world'}
    
    //使用*args获取任何非关键字的值并保存在一个元组里
    >>> def test_args(first, *args) :
    ...         print first
    ...         print args
    ...
    >>> args ("hello","world","!")
    hello
    ('world','!')
    >>> args (1,2,3)
    1
    (2, 3)

    总结一些容易错误的细节

    主要是一些习惯问题

  • if , else, elif以及创建一个函数时语句末尾有冒号
  • 注意一下缩进问题
  • 用and,not,or进行逻辑关系的判断

    (单引号和双引号的问题并不用太注意)

    基础语法就学习到这里~

    (我会继续补充和完善的~如果有错误,欢迎指正)

  • Python Learing(一):Basic Grammar的更多相关文章

    1. Python Learing(二):Basic Image Processing 1

      <写在前面> Basic image processing 1: 0.(以简单的曲线图为例)对于生成的图自定义外观,使用子图,多个数据集,标题,标签,交互式标注,图例: 1.生成散点图,直 ...

    2. 《Using Databases with Python》 Week2 Basic Structured Query Language 课堂笔记

      Coursera课程<Using Databases with Python> 密歇根大学 Week2 Basic Structured Query Language 15.1 Relat ...

    3. [Python Study Notes] Basic I\O + File 操作

      列表操作 Python 文件I/O 本章只讲述所有基本的的I/O函数,更多函数请参考Python标准文档. 打印到屏幕 最简单的输出方法是用print语句,你可以给它传递零个或多个用逗号隔开的表达式. ...

    4. Python笔记 #09# Basic plots with matplotlib

      源:DataCamp 气泡的大小表示人口的多少,横坐标表示人均GDP(美元),纵坐标表示预期寿命.-- 作者:Hans Rosling Python 中有许许多多用于可视化的包,而 matplotli ...

    5. 【Python】【Basic】MacOS上搭建Python开发环境

      1. Python3 1.1. 下载地址:https://www.python.org/downloads/mac-osx/ 1.1.1. PKG包安装: 没啥可说的,点点点,下一步而已,不用手动配置 ...

    6. 【Python】【Basic】【数据类型】运算符与深浅拷贝

      运算符   1.算数运算: 2.比较运算: 3.赋值运算: 4.逻辑运算: 5.成员运算: 三元运算 三元运算(三目运算),是对简单的条件语句的缩写. # 书写格式 result = 值1 if 条件 ...

    7. Python Ethical Hacking - Basic Concetion

      What is Hacking? Gaining unauthorized access. Hackers? 1.Black-hat Hackers 2.White-hat Hackers 3.Gre ...

    8. 【Python】【Basic】【数据类型】基本数据类型

      1.数字 int(整型) 在32位机器上,整数的位数为32位,取值范围为-2**31-2**31-1,即-2147483648-2147483647 在64位系统上,整数的位数为64位,取值范围为-2 ...

    9. Intermediate Python for Data Science learning 1 - Basic plots with matplotlib

      Basic plots with matplotlib from:https://campus.datacamp.com/courses/intermediate-python-for-data-sc ...

    随机推荐

    1. Oracle 11g XE 是 Oracle 数据库的免费版本

      Oracle 11g XE 是 Oracle 数据库的免费版本,支持标准版的大部分功能,11g XE 提供 Windows 和 Linux 版本. 做为免费的 Oracle 数据库版本,XE 的限制是 ...

    2. bigdata_批量机器执行通用脚本

      经常有这样的场景,需要批量验证一些配置或者机器,执行一些命令.例如  echo $PATH  等等 这里分享一个批量执行脚本 脚本名称 deployCommnd.sh 运行demo : sh depl ...

    3. 《代码的第一行——Android》封面诞生

      <代码的第一行--Android>已经上市近一个月,现在的情况是相当不错的销售,也特别感谢众多朋友的支持. 其实一本好书,假设你想卖.除了给予外力所要求的内容.封面设计是至关重要的,这本书 ...

    4. Windows移动开发(一)——登堂入室

      開始本博客之前先分享一个自己的好消息吧,2014年3月31日起,正式就职于北京****集团Win8project师.主要负责将IOS和Android应用移植到Win8.1平板上,目标客户是银行,闲话不 ...

    5. JavaScript 数组的indexOf()、remove()、splice() , pop()方法

      js中,按照值删除数组中的某个元素 Array.prototype.indexOf = function(val) {            for (var i = 0; i < this.l ...

    6. Fireasy

      Fireasy与Asp.net MVC结合   Fireasy之前都是使用HttpService来为jquery ajax提供服务,这个HttpService实际上和MVC的原理机制是一样的,只是它支 ...

    7. Unity插件之NGUI学习(8)—— Table和NGUI尺寸转换为世界坐标系尺寸

      依据 Unity插件之NGUI学习(2),创建一个UI Root,在UI Root下创建一个Texture作为背景图,并设置图片,在Wiget下调整大小:然后在UI Root下再创建一个Panel. ...

    8. 转载Worktile 技术架构概要

      Worktile 技术架构概要 其实早就该写这篇博客了,一直说忙于工作没有时间,其实时间挤挤总会有的,可能就是因为懒吧!从2013年11月一直拖到现在,今天就简单谈谈 Worktile 的技术架构吧 ...

    9. 嵌Ruby 2 《捆绑》

      本章主要介绍 Ruby Object 与C++对象绑定 //====================================================================== ...

    10. Content-Type boundary 问题

      我并不知道问题怎么描述清楚一些. 事情是这样的,使用  Microsoft Dynamics CRM Server 2016 做CRM系统的时候用到 使用 Web API 执行批处理操作(参见SDK或 ...