---------------个人学习笔记---------------

----------------本文作者疆--------------

------点击此处链接至博客园原文------

Python擅长的领域

web开发:django、pyramid、tornado、bottle、flask、webpy

网络编程:twisted、requests、scrapy、paramiko

科学计算:scipy、pandas、ipython

GUI图形开发:wxpython、pyqt、kivy

运维自动化:openstack

学习规划

1.编译型语言(一次将全部代码转换为机器语言--可执行文件)和解释型语言(逐行解释、执行),编译型语言执行速度更快。

2.Python是一个动态解释性的强类型定义语言(强制数据类型定义的语言,变量不经过强制转换则永远为原来的数据类型)。

3.Python开发效率高、高级语言、可移植性、可扩展性、可嵌入性,其缺点为速度慢、代码不能加密、线程不能利用多CPU问题,即Python的多线程无法利用多核优势并发执行。

4.Python解释器:CPython(默认下载)、IPython、PyPy(执行更快,动态编译而非解释)、Jython、IronPython。

5.Python2.7后不再更新Python2标准库,官方支持到2020/4,Python3不完全兼容Python2,有部分改动,如库名变更、print语句、字符编码等。

6.若想在linux系统中类似于执行shell脚本一样执行python程序(windows中不行),如./hello.py,需要在文件头部指定解释器 #! /usr/bin/env python(即寻找Python环境变量),还需要先赋予执行权限,chmod 755 xx.py (赋予所有用户读写权限)。

7.Pycharm中配置模板:File---Settings---Editor---File and Code Templates---Python Script中添加模板,每次新建Python脚本将自动添加自定义模板。

8.Pycharm中的一些快捷方式:右键Run 'xx'运行当前脚本、脚本右键Refactor---Rename改名、shift+tab 撤销缩进、ctrl+/选中多行同时注释、shift+f9对当前脚本debug、ctrl+r变量名替换。

9.变量赋值疑难问题及解释

第1个例子 a1指向0的内存地址,a2通过a1指向0的内存地址,当a1赋新值后,a2仍指向0的内存地址,而与a1的取值无关。

# -*- coding:utf-8 -*-
# Author: WUJiang
# 变量赋值疑难问题
a1 = 0
a2 = a1
print(a1, a2) # 0 0
a1 = 1
print(a1, a2) # 1 0 而不是 1 1

第2个例子 -----------------指向列表的指针,列表元素修改则跟着修改。

# -*- coding:utf-8 -*-
# Author: WUJiang
a_list = [0, 1, 2, 3]
b_list = a_list # b_list: [0, 1, 2, 3]
a_list[0] = 1 # a_list: [1, 1, 2, 3]
print(b_list) # b_list: [1, 1, 2, 3]
# 结论:b_list列表随着a_list的改变而改变,因为指向的是列表的内存地址(指针)
# 避免这个问题可以用copy函数 a_list = [0, 1, 2, 3]
b_list = a_list.copy() # b_list: [0, 1, 2, 3]
a_list[0] = 1 # a_list: [1, 1, 2, 3]
print(b_list) # b_list: [0, 1, 2, 3]

10.保留字段不能声明为变量名:and,as,assert,break,class,continue,def,del,elif,else,except,exec,finally,for,from,global,if,import,in,is,lambda,not,or,pass,print,raise,return,try,while,with,yield。

11.字符编码

Python解释器在加载.py文件中的代码时,会对内容进行编码。

默认ASCII,美国标准信息交换代码,主要用于现代英语和其他西欧语言(用8位表示),最多能表示255个符号,预留了128个符号,但是128符号不足以对其余字符(如中文汉字)编码,因此需要额外扩展其他编码(预留128个符号可用于保存内存地址指针,比如某个汉字在某一范围内,指针指向去查编码表,如GB2312)。

由于ASCII码无法将世界上各种文字和符号全部表示,所以,需要一种可以表示所有字符和符号的编码:Unicode(统一码、万国码、单一码)为每种语言中每个字符设定了统一且唯一的二进制编码,规定所有字符和符号最少由16位(2字节)表示.

UTF-8,是对Unicode编码的压缩和优化,其不再最少使用2个字节,而是将所有字符和符号进行分类,ASCII码中的内容用1个字节表示,欧洲字符用2个字节表示,东亚字符用3个字节表示......

Python3字符集支持中文,默认UTF-8编码,而Python2默认ASCII编码,处理中文需指定UTF-8编码。

12.用户输入

Python2中 raw_input与Python3中的input等效,统一将输入转换为str数据类型,若需要整形数字可再强制类型转换。

Python2中input,接收什么数字类型就是什么类型,如接收数字1就认为输入为整形,str数据类型需加“”,否则报错。(建议不要轻易用)

# Python2
# 输入姓名必须加引号,如"wujiang",而Python3中只需要输入wujiang
name = input("enter your name:")
print(name)

13.格式化输出(%s、format等)

# -*- coding:utf-8 -*-
# Author: WUJiang
# 格式化输出
name = input("enter your name:")
age = input("enter your age:")
info = '''-----info of %s-----
Name:%s
Age:%s
''' % (name, name, age)
print(info)

%s为%string,同样可以用%d、%f,但需保证对应变量的类型是一致的。

# -*- coding:utf-8 -*-
# Author: WUJiang
# 格式化输出 name = input("enter your name:")
age = input("enter your age:")
info = '''-----info of {_name}-----
Name:{_name}
Age:{_age}
'''.format(_name=name, _age=age)
print(info) name = input("enter your name:")
age = input("enter your age:")
info = '''-----info of {0}-----
Name:{0}
Age:{1}
'''.format(name, age)
print(info)

14.(标准库)getpass模块  getpass.getpass("xxxx:")   输入密文不可见,但其在pycharm用不了,需在终端下执行该.py文件。

# -*- coding:utf-8 -*-
# Author: WUJiang
# getpass需在终端中使用
import getpass pw = getpass.getpass("password:")
print(pw)

15.if-elif-else条件判断与while、for循环,while、for还能和else搭配

# -*- coding:utf-8 -*-
# Author: WUJiang
# while与else
age = int(input("age:"))
while age < 30:
print("你还年轻,还可以从头再来")
break
else:
print("你虽然年纪大了,但大佬们也是你这个年纪起步的!")

for循环常与range()搭配。

# for与else
for i in range(3):
print("loop:", i)
else:
print("loop stop")

16.break与continue

break跳出(所在循环的)整个循环,continue跳出本次(当前)循环进入下次循环。

for i in range(0, 100, 2):
if i % 5 == 0:
print(i)
# break break只会print 0
# continue 而continue会print 0 10 20 30 40 50 60 70 80 90

多个循环嵌套时,break跳出其所在的整个循环。

for i in range(3):
print("---------", i)
for j in range(3):
if j < 3:
print(j)
else:
# continue continue与break在此输出等效
break # break 跳出所在的整个循环
# --------- 0 0 1 2
# --------- 1 0 1 2
# --------- 2 0 1 2
# break 这个break才会跳出整个程序的循环

Python3基础(1)Python介绍、Python2 与Python3、变量、用户输入、if...else和for循环、while循环、break与continue的更多相关文章

  1. Python 循环语句(break和continue)

    Python 循环语句(break和continue) while 语句时还有另外两个重要的命令 continue,break 来跳过循环,continue 用于跳过该次循环,break 则是用于退出 ...

  2. linux服务器升级python版本(python2与python3共存)

    linux服务器升级python版本 ######################################## 第一步先安装sqlite-devel,因为python2也有这个,python3 ...

  3. python基础1之python介绍、安装、变量和字符编码、数据类型、输入输出、数据运算、循环

    开启python之路 内容概要: 一.python介绍 二.安装 三.第一个python程序 四.变量和字符编码 五.用户输入 六.数据类型 七.一切皆对象 八.数据运算 九.if else 流程判断 ...

  4. python基础(1):python介绍、python发展史

    1. python介绍 1.1 python是什么样的语言 编程语⾔主要从以下⼏个⻆度为进⾏分类,编译型和解释型.静态语⾔和动态语⾔.强类型定义语⾔和弱类型定义语⾔,我们先看编译型语⾔和解释型语⾔.稍 ...

  5. python介绍、解释器、变量及其它

    python 一.python及编程语言介绍 编程语言发展:机器语言==>汇编语言==>高级语言 机器语言:由数字电路发展而来编程都是靠0101的二进制进行 汇编语言:汇编语言的实质和机器 ...

  6. Python基础之注释,算数运算符,变量,输入和格式化输出

    Python的注释 注释的作用:用自己熟悉的语言,对某些代码进行标注说明,增强程序的可读性: 在python解释器解释代码的过程中,凡是#右边的,解释器都直接跳过这一行: 注释的分类 单行注释 # 这 ...

  7. Python循环语句之break与continue的用法

    摘自原文章: http://www.jb51.net/article/73383.htm Python break 语句Python break语句,就像在C语言中,打破了最小封闭for或while循 ...

  8. python HtmlTestRunner python2.x python3.x报告优化模板源码下载

    文件py压缩包下载地址https://files.cnblogs.com/files/SunshineKimi/HtmlTestRunner2.x_3%2Cx.rar 源码拷贝如下: python 2 ...

  9. python:python2与python3共存时,pip冲突,提示Fatal error in launcher: Unable to create process using '"d:\python27\python2.exe" "D:\Python27\Scripts\pip2.exe" '

    问题背景: 机器上同时装了python2.和python3后,导致只能用pip3了,使用pip2时提示:Fatal error in launcher: Unable to create proces ...

  10. Python基础之Python介绍

    Python的创始人为吉多·范罗苏姆(Guido Van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承. 最新 ...

随机推荐

  1. 纯js+html+css实现模拟时钟

    前几天没事写的个模拟时钟,代码仅供小白参考,大神请自动绕过. <!DOCTYPE html> <html lang="en"> <head> & ...

  2. 杂项-权限管理:Ralasafe

    ylbtech-杂项-权限管理:Ralasafe Ralasafe 是用Java编写的开源(MIT协议)访问控制中间件.它能够轻松处理登录控制.URL权限控制和(业务级)数据级权限管理,实现权限与业务 ...

  3. docker Get started part 4: Accessing your cluster cannot curl

    1. 问题描述 docker Get started part 4 can't visit myvm1 or myvm2. curl: (7) Failed to connect to 192.168 ...

  4. C语言学习笔记--单引号和双引号

    (1)C 语言中单引号用来表示字符字面量(是个数值)被编译为对应的 ASCII 码 (2)C 语言中双引号用来表示字符串字面量(是个指针)被编译为对应的内存地址 例如:'a'表示字符字面量(97),在 ...

  5. chef语法和案例

    1. 添加用户 $ vim create_user.rb -----------------------------------> user 'charlie' do //创建一个uid为88的 ...

  6. 8、SRR数据下载https://ftp-trace.ncbi.nlm.nih.gov/sra/sdk/2.8.2/

    1.prefetch SRRxxxxxx         -/ncbi/public/sra 2.fastq-dump --split-files xxxxxxsra 3.SRA.SAM以及Fastq ...

  7. Entity Framework Code-First(8):Configure Domain Classes

    Configure Domain Classes in Code-First: We learned default Code-First Conventions in the previous se ...

  8. jquery 规范

    使用单引号 不推荐 $("div").html("<img src='1.jpg'>"); 推荐 $('div').html('<img sr ...

  9. 17.[CVE-2017-12615]Tomcat任意文件上传漏洞

    [CVE-2017-12615] Tomcat任意文件上传漏洞 首先先贴出wooyun上的一个案例:http://wooyun.jozxing.cc/static/bugs/wooyun-2015-0 ...

  10. 高考是最后一次拼智商的事了。(beacuse 大多数人的努力程度之低根本轮不到拼天赋!)

    高考是最后一次拼智商的事. —因为大多数人的努力程度之低  根本轮不到拼天赋 在这个不起眼的小公司实习也有两周了,周四经理说说为了增加IOS开发小组和安卓开发小组之间的交流,准备每周开一次这种报告会. ...