Python3基础(1)Python介绍、Python2 与Python3、变量、用户输入、if...else和for循环、while循环、break与continue
---------------个人学习笔记---------------
----------------本文作者疆--------------
------点击此处链接至博客园原文------
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的更多相关文章
- Python 循环语句(break和continue)
Python 循环语句(break和continue) while 语句时还有另外两个重要的命令 continue,break 来跳过循环,continue 用于跳过该次循环,break 则是用于退出 ...
- linux服务器升级python版本(python2与python3共存)
linux服务器升级python版本 ######################################## 第一步先安装sqlite-devel,因为python2也有这个,python3 ...
- python基础1之python介绍、安装、变量和字符编码、数据类型、输入输出、数据运算、循环
开启python之路 内容概要: 一.python介绍 二.安装 三.第一个python程序 四.变量和字符编码 五.用户输入 六.数据类型 七.一切皆对象 八.数据运算 九.if else 流程判断 ...
- python基础(1):python介绍、python发展史
1. python介绍 1.1 python是什么样的语言 编程语⾔主要从以下⼏个⻆度为进⾏分类,编译型和解释型.静态语⾔和动态语⾔.强类型定义语⾔和弱类型定义语⾔,我们先看编译型语⾔和解释型语⾔.稍 ...
- python介绍、解释器、变量及其它
python 一.python及编程语言介绍 编程语言发展:机器语言==>汇编语言==>高级语言 机器语言:由数字电路发展而来编程都是靠0101的二进制进行 汇编语言:汇编语言的实质和机器 ...
- Python基础之注释,算数运算符,变量,输入和格式化输出
Python的注释 注释的作用:用自己熟悉的语言,对某些代码进行标注说明,增强程序的可读性: 在python解释器解释代码的过程中,凡是#右边的,解释器都直接跳过这一行: 注释的分类 单行注释 # 这 ...
- Python循环语句之break与continue的用法
摘自原文章: http://www.jb51.net/article/73383.htm Python break 语句Python break语句,就像在C语言中,打破了最小封闭for或while循 ...
- python HtmlTestRunner python2.x python3.x报告优化模板源码下载
文件py压缩包下载地址https://files.cnblogs.com/files/SunshineKimi/HtmlTestRunner2.x_3%2Cx.rar 源码拷贝如下: python 2 ...
- 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 ...
- Python基础之Python介绍
Python的创始人为吉多·范罗苏姆(Guido Van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承. 最新 ...
随机推荐
- 开源一个windows消息队列查看器
windows消息简单易用,在异步消息发送场景的使用还是比较适合.为了方便查看队列中的消息和删除一些异常消息,开发了一个简单的小工具拿出来分享下. 源码地址:https://gitee.com/eab ...
- linux日常管理-rsync后台服务方式-1
rsync的另外一种方式,写一个配置文件,放在etc下,通过一个命令启动他,它会监听一个端口,在客户端和服务端进行通信. 远程机器的配置文件 IP是192.168.1.117 配置文件的名字,写成这个 ...
- Qt 按顺序保存多个文件
void MainWindow::on_pushButtonSnap_clicked() { ]; sprintf(image_name, "%s%d%s", "C:/i ...
- 服务器修改密码cmd
net user 账号 要修改的密码
- makefile基本语法
多文件编程的小例子功能:在main.c里面调用其他两个源文件里面的函数,然后输出字符串. 1.main.c #include"mytool1.h"#include" ...
- sharepoint Foundation 2013 error
安装必须软件时提示以下错误 错误提示日志: 015-05-28 10:40:25 - Request for install time of 应用程序服务器角色.Web 服务器(IIS)角色2015- ...
- Vmware克隆Centos 不能上网的解决方案
问题:用Vmware克隆Centos 6.4后,发现系统内只有eth1,而且/etc/sysconfig/network-scripts/下只有,ifcfg-eth0文件,虽然可以上网,但无法设置静态 ...
- 分布式系统中Unique ID 的生成方法
http://darktea.github.io/notes/2013/12/08/Unique-ID 本文主要介绍在一个分布式系统中, 怎么样生成全局唯一的 ID 一, 问题描述 在分布式系统存在多 ...
- 4、在线blast比对结果解析(保守结构域)
转载:http://www.bio1000.com/experiment/fenzi/237846.html 标签: NCBI Blast LASTP 摘要 : NCBI BLAST比对结果报告分析: ...
- 12、IGV-Integrative Genomics Viewer
1.IGV的网址:http://software.broadinstitute.org/software/igv/(java环境) 常见的几种输入格式bam/sam(比对文件) TDF(bam的精简 ...