Python程序设计1——基础知识
1 Python脚本设计简介
1.1 输出"Hello World"
和一般的语言一样,运行python程序有两种方式,一种是GUI交互式命令,一种是通过脚本文件,前者适合小型简单的任务,后者适合比较大型的。
又是输出Hello World。。。。
提出"Hello World"程序的Simon Cozen说:"它是编程之神的传统咒语,可以帮助你更好的学习语言"。
1.1.1 使用带提示符的解释器
输出Hello World
使用函数print
print "Hello World"
1.1.2 使用源文件
#!/usr/bin/python
#Filename:HelloWorld
print "Hello World"
保存后如果在linux环境下,需要先修改执行权限,然后像shell执行程序一样,或者使用python方式,python HelloWorld.py
程序说明:Python至少应当有第一行那样的特殊形式的注释,它被称作组织行——源文件的头两个字符是#! 后面跟着一个程序.这一行告诉你的Linux/Unix系统,当你执行你的程序的时候,它应该运行哪个解释器。
使用帮助:help('命令名称')
1.1.3 双斜线与整除
Python提供了用于实现整除的操作符————双斜线
>>> 1//2
0
就算是浮点数,双斜线也会执行整除
>>> 1.0//2.0
0.0
1.2获取用户输入——input函数
input函数是一种标准输入函数,用于获取用户的输入
示例1:
input ("The meaning of life: ")
The meaning of life:42
42
1.3 函数
函数在各种语言中都是很常见的,与数学中的函数不同,计算机里面的函数通常都是一种比较高层的已经封装好的,通常可以直接拿来用,而数学中的函数都是一种具体的算法。
示例1:乘方函数pow
pow(2,3)
8
示例2:abs函数
说明:该函数用于计算绝对值
abs(-10)
10
示例3:round函数
说明:该函数会把浮点数四舍五入为最接近的整数值
round(1.0/2.0)
0.5
示例4:floor函数(地板函数)和ceil函数(天花板函数)
说明:想象一下一个人站在一间房子里面,这个人的身高肯定是介于地板和天花板之间的。对应于地板的就是floor函数,对应于天花板的是ceil函数,他们分别取小于一个浮点数的最大的整数和大于一个浮点数的最小整数
math.floor(32.9)
32.0
>>> math.ceil(32.9)
33.0
实例5:cmath和sqrt
cmath即complex math 复数的意思。
sqrt是开平方,我们可以对复数开平方
>>> import cmath
>>> cmath.sqrt(-1)
1j
1.4 字符串
首先说明3种正引号、反引号、反斜线,然后再说对字符串的操作
3种正引号包括:单引号''、双引号""和三引号''' ''',注意双引号并不是两个单引号的简单叠加。两个单引号在一起是'' '' 而双引号是"",可以看出双引号比两个单引号放一起更加紧密。
反引号:``
反斜线:\
一般说的引号就是正引号。无论是正引号还是反引号都是成对的。正引号通常用于包字符串。python通常打印字符串的时候都会用单引号包起来。
>>> "hello"
'hello'
>>> 'hello'
'hello'
>>> ''' hello '''
' hello '
但是在有些情况下仅仅靠单引号是不够的例如我们要打出Let's go
'Let's go',系统会识别不出来单引号是从哪里开始包字符串,并且到哪里结束,这样就会编译错误。
>>> 'Let's go'
File "<stdin>", line 1
'Let's go'
^
SyntaxError: invalid syntax
我们可以用两种方法来解决这个问题
解决办法1:使用反斜线做转义字符
>>> 'Let\'s go'
"Let's go"
解决办法2:使用单引号或三引号
''' Let's go'''
" Let's go" >>> ''' Let\'s go '''
" Let's go "
" let's go"
" let's go"
对于双引号也是可以用转义字符来进行转义
例如"Hello World!" she said
>>> "\"Hello,world\""
'"Hello,world"' >>> '\"Hello,world\"'
'"Hello,world"'
总之使用单引号时候需要用反斜线转义,使用双引号或三引号时候可以不用转义符号解析。
反引号:``,反引号在shell里面也有,它是将它包的东西进行引用,并赋给一个变量。
示例:
temp = 32
>>> a = temp
>>> a
32
>>> print temp
32
>>> print `temp`
32
在比较早期的版本里面需要用反引号,在3.0以后的python版本,不需要反引号了
反斜线:\ 这个东东通常用于转义,没啥好挖掘的
1.5 对字符串的操作
示例1:字符串的拼接
拼接方式1:直接放一起
"hello""world"
'helloworld'
拼接方式2:使用连接符号+
>>> "hello" + "world"
'helloworld'
建议使用第二种,可读性更好
1.6 字符串的格式化输出
str和repr函数
通过前面的例子我们注意到,通过Python打印的字符串是被引号括起来的,这是因为Python打印值时会保持该值在Python代码中的状态,而不是你希望用户所看到的状态。如果使用print语句就不一样。
>>> "Hello World"
'Hello World'
>>> 1000L
1000L
>>> print "Hello World"
Hello World
>>> print 1000L
1000
事实上这里涉及到了python对值处理的两种机制,这里分别用str和repr代表。对于str函数,它会把值转换为合理形式的字符串,以便用户可以理解。而repr会创建一个字符串,它以合法的python表达式的形式来表示值,这样方便对转换后进行再处理。
>>> print str("Hello World")
Hello World
>>> print str(1000L)
1000
>>> print repr("Hello World")
'Hello World'
>>> print repr("1000L")
'1000L'
1.7 input和raw_input的比较
input要求用户输入的是合法的表达式,比如字符串要带双引号,而raw_input要求输入的是普通的字符串。我们看一个例子:
>>> input("What's your name:")
What's your name:ren
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<string>", line 1, in <module>
NameError: name 'ren' is not defined
问题在于ren并非python标准的表达式,我们可以修改一下:
>>> input("What's your name:")
What's your name:"ren"
'ren'
显然要用户输入时候还要带上引号是不可忍受的,raw_input的作用就是让用户不必输入引号,而是裸的(raw)字符串
>>> raw_input("what's your name;")
what's your name;ren
'ren'
一般情况下,我们都使用raw_input
1.8 长字符串、原始字符串和Unicode
长字符串:长字符串就是很长很长的字符串,如果需要些一个非常非常长的字符串,它需要跨多行,那就可以用三引号来包这个长字符串。
>>> print ''' this is
... a ver long string
... it starts from here
... and still continues
... "Hello World"
... still here '''
this is
a ver long string
it starts from here
and still continues
"Hello World"
still here
普通字符串也可以,但是需要用反斜线放在末尾
>>> print " hell \
... llo"
hell llo >>> print 'hel\
... ll'
helll
在没有需要进行转义的情况下,单引号和双引号是等价的,如果有需要转义,单引号+转义效果和双引号和三引号效果是一样的。对于长字符串,三引号又和单引号+末尾转义和双引号+末尾转义等价,总之三引号是最强大的
原始字符串:我们知道反斜线有转义字符的作用。比如要打印一个路径C:\now\hello\ab\
可以使用转义字符:print 'c:\\now\\hello\\ab',看起来是十分麻烦的。还好python提供了一个关键字r,它表示与它贴在一起的字符串是是一个原始的字符串,也就是不会进行转义的。
>>> print r'C:\now\hello\ab'
C:\now\hello\ab
看起来不可思议~!
注意:不能在原始字符串r后面再用转义字符,否则会将反斜线也打出来的。并且如果有反斜线,也不能放在末尾。否则会编译错误。
Unicode字符串
字符串常量的最后一种类型就是Unicode字符串。普通的字符串以8位的ASCII码形式存储,而Unicode字符串以16位Unicode字符,这样就可以表示更多的字符集,包括世界上大多数语言的特殊字符。
和使用原始字符串一样,加上字符u前缀即可。
>>> u"hello world"
u'hello world'
2 本章总结
本章介绍了Python的很多细碎的知识,多操作即可。
Python程序设计1——基础知识的更多相关文章
- Python开发(一):Python介绍与基础知识
Python开发(一):Python介绍与基础知识 本次内容 一:Python介绍: 二:Python是一门什么语言 三:Python:安装 四:第一个程序 “Hello world” 五:Pytho ...
- 1)Linux程序设计入门--基础知识
)Linux程序设计入门--基础知识 Linux下C语言编程基础知识 前言: 这篇文章介绍在LINUX下进行C语言编程所需要的基础知识.在这篇文章当中,我们将 会学到以下内容: 源程序编译 Makef ...
- Python进阶----计算机基础知识(操作系统多道技术),进程概念, 并发概念,并行概念,多进程实现
Python进阶----计算机基础知识(操作系统多道技术),进程概念, 并发概念,并行概念,多进程实现 一丶进程基础知识 什么是程序: 程序就是一堆文件 什么是进程: 进程就是一个正在 ...
- 基于Python的Flask基础知识
Flask简介 Flask 是一个使用 Python 编写的轻量级 Web 应用程序框架.Armin Ronacher带领一个名为Pocco的国际Python爱好者团队开发了Flask. 下面我们简单 ...
- Python第一章-基础知识
第一章:基础知识 1.1 安装python. 直接官网下载最新的python然后默认安装就可以了,然后开始菜单里找到pyhton *.*.* Shell.exe运行python的交互shell ...
- Python音频处理基础知识,这不是轻轻松松~~~
大家好鸭,我是小熊猫 咱今天来讲一讲音频处理的基础知识上才艺~~~ 1.声音的基础 2.python读取.wav音频 欢迎加入白嫖Q群:660193417### import wave import ...
- python这不是有手就行?——python音频处理基础知识
大家应该都知道声音的基础吧? 啊不知道当我没说吧~~~ 1.声音的基础 2.python读取.wav音频 Python学习交流Q群:660193417#### import wave import s ...
- Python之进程 基础知识 上
阅读目录 理论知识 操作系统背景知识 什么是进程 进程调度 进程的并发与并行 同步\异步\阻塞\非阻塞 进程的创建与结束 在python程序中的进程操作 multiprocess模块 进程的创建和mu ...
- Python开发——1.基础知识
一.开发 开发语言分为高级语言和低级语言 高级语言:Python.Java.PHP.C++.C#.GO.Ruby等:低级语言:C.汇编语言. 高级语言对应的是字节码,是将代码编译成字节码,然后交给机器 ...
随机推荐
- Python日志统计
#!/usr/bin/env python # coding:utf-8 import sys,time class DisplayFormat(object): def form ...
- Zijian-lv #3 树句节狗提
如你所见,这是一道狗题 一棵树,多次询问与一个点距离至少为 $k$ 的点的权值和 $n,q \leq 2525010$ sol: 长链剖分 需要注意的是这道题卡空间 我把我所有的 vector 换成链 ...
- 浅谈FFT(快速傅里叶变换)
本文主要简单写写自己在算法竞赛中学习FFT的经历以及一些自己的理解和想法. FFT的介绍以及入门就不赘述了,网上有许多相关的资料,入门的话推荐这篇博客:FFT(最详细最通俗的入门手册),里面介绍得很详 ...
- CodeForces - 687D: Dividing Kingdom II (二分图&带权并查集)
Long time ago, there was a great kingdom and it was being ruled by The Great Arya and Pari The Great ...
- ACM学习历程—HDU5667 Sequence(数论 && 矩阵乘法 && 快速幂)
http://acm.hdu.edu.cn/showproblem.php?pid=5667 这题的关键是处理指数,因为最后结果是a^t这种的,主要是如何计算t. 发现t是一个递推式,t(n) = c ...
- grunt 压缩js css html 合并等配置与操作详解
module.exports = function(grunt){ //1.引入 grunt.loadNpmTasks('grunt-contrib-cssmin'); grunt.loadNpmTa ...
- 相当有用的react+redux渲染性能优化原理
学习地址:http://foio.github.io/react-redux-performance-boost/
- 使用批处理自动发布IIS站点,基于IIS7及以上
经过研究,终于使用批处理解决了站点发布步骤多的问题. 完整批处理如下: @set "sitePath=%~dp0" @echo 新建程序池 @C:\Windows\System32 ...
- ajax 原理
Ajax的原理简单来说通过XmlHttpRequest对象来向服务器发异步请求,从服务器获得数据,然后用javascript来操作DOM而更新页面. 其中最关键的一步就是从服务器获得请求数据. ...
- 机器学习:集成学习(Soft Voting Classifier)
一.Hard Voting 与 Soft Voting 的对比 1)使用方式 voting = 'hard':表示最终决策方式为 Hard Voting Classifier: voting = 's ...