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语言的一种继承. 最新 ...
随机推荐
- rails常用命令示例
数据迁移命令 1.一下命令执行后会在db\migrate下产生同名数据迁移文件(文件内容可自行修改,基本语法见“数据迁移文件”部分) 创建model:rails generate model user ...
- Python-socket发送文件并解决粘包问题
服务器端要先根据客户端要下载的文件进行判断是否存在,还要根据文件大小来进行传送,最后还要比对文件的md5值来判断传送的文件是否正确,通过判断剩余字节来解决粘包问题 服务器端 # -*- coding: ...
- Ubuntu 安装配置Jenkins
一.安装jdk 1. sudo add-apt-repository ppa:webupd8team/java 添加ppa源 如果提示找不到该命令则需要安装: sudo apt-get install ...
- C#自定义控件 绘制框
上几张测试的 效果 虽然全是用.net 的绘图库画的,但是手动双缓冲,不会闪烁,感觉还不错,源码开放了,喜欢的拿去扩展吧; 用于撤销的存放图像的数据结构我设置为10个,怕是内存崩了,我看mspaint ...
- 0011_练习题d1
__author__ = 'qq593' #!/usr/bin/env python #-*- coding:utf-8 -*- #使用while循环输入1 2 3 4 5 6 8 9 10 a=1 ...
- HDU 5973 Game of Taking Stones (威佐夫博弈+高精度)
题意:给定两堆石子,每个人可以从任意一堆拿任意个,也可以从两堆中拿相同的数量,问谁赢. 析:直接运用威佐夫博弈,floor(abs(a, b) * (sqrt(5)+1)/2) == min(a, b ...
- vue 绑定属性(index)
<el-menu-item v-for="item in links" :key="item.id" v-bind:index="item.id ...
- Word课程笔记(秋叶系列课程)
课时010[视频]01 别说你会Word,你可能用错了! # 贯通三个核心: 大量重复的工作懂得批量处理:反复要做的固定操作固化成“模板”“套路”:碰到异常情况知道准确高效的解决: # 三个问题: 文 ...
- Boost Python官方样例(三)
导出C++类(纯虚函数和虚函数) 大致做法就是为class写一个warp,通过get_override方法检测虚函数是否被重载了,如果被重载了调用重载函数,否则调用自身实现,最后导出的时候直接导出wa ...
- kolla制作过程中:neutron-sfc-agent 报错的问题
在使用二进制方式编译镜像的时候,neutron的sfc-agent提示如下错误ERROR:kolla.image.build:neutron-sfc-agent Failed with status: ...