python-1 python基础知识

python第一课代码笔记

hello world

[[email protected]1 python]# vim hello1.py   

#!/usr/bin/env python

print (‘hello world!‘)

[[email protected]-data-1 python]# python hello1.py

hello world!

注意

#!/usr/bin/python是告诉操作系统执行这个脚本的时候,调用/usr/bin下的python解释器;
#!/usr/bin/env python这种用法是为了防止操作系统用户没有将python装在默认的/usr/bin路径里。当系统看到这一行的时候,首先会到env设置里查找python的安装路径,再调用对应路径下的解释器程序完成操作。
#!/usr/bin/python相当于写死了python路径;
#!/usr/bin/env python会去环境设置寻找python目录,推荐这种写法

 

[[email protected]-data-1 python]# vim hello2.py   

def main():

print("hello")

main()

IndentationError: expected an indented block 缩进错误

[[email protected]-data-1 python]# vim hello2.py   

def main():

  print("hello")

main()

变量

[[email protected]-data-1 python]# vim plus.py
x = 2
y = 3
print (x + y)
[[email protected]-data-1 python]# python plus.py
5
[[email protected] python]# vim plus.py
def main():
  x = 2
  y = 4  print(x + y)
main()

# python plus.py6

大写的一般是常量,小写的是变量

[[email protected]-data-1 python]# vim test.py
x = 2
y = 3
z = x
x = 5
print (‘Z:‘,z)
print (‘X:‘,x)
[[email protected]-data-1 python]# python test.py
Z: 2
X: 5
[[email protected]-data-1 python]# vim test1.py
a = ‘ABC‘
b = a
a = ‘XYZ‘
print(b)
print(a)
[[email protected]-data-1 python]# python test1.py
ABC
XYZ
单行注释:#,多行注释:’’’ 三个引号
#print ‘ddd’
[[email protected] python]# vim zhushi.py
print‘‘‘
print ‘ddd‘
print ‘ddd‘
print ‘ddd‘
------------------‘‘‘

[[email protected] python]# python zhushi.py

print ‘ddd‘

print ‘ddd‘

print ‘ddd‘

------------------

理解字符編碼:


 #_*_coding:utf8_*_
在脚本里面添加以上那句话,可解决中文问题
ASSIC(8进制)    UNICODE(16进制)   UTF8(可变长度的)
ASSIC:1个字节8位,2的8次方,最多存256个数
UNICODE:2的16次方,最多存65536
UTF8:可变长度的
[[email protected]-data-1 Python-3.4.4]# python
>>> ord(‘a‘)
97
>>> ord(‘A‘)
65

>>> a = ‘wwp‘
>>> type(a)
<class ‘str‘>
>>> len(a)
3

In [1]: name = ‘咖啡可乐‘

In [2]: name
Out[2]: ‘\xe5\x92\x96\xe5\x95\xa1\xe5\x8f\xaf\xe4\xb9\x90‘

In [3]: name.encode(‘utf-8‘)
---------------------------------------------------------------------------
UnicodeDecodeError Traceback (most recent call last)
<ipython-input-3-977844d87663> in <module>()
----> 1 name.encode(‘utf-8‘)

UnicodeDecodeError: ‘ascii‘ codec can‘t decode byte 0xe5 in position 0: ordinal not in range(128)

读取文件时使用的编码默认时ascii而不是utf8,导致的错误

解决方法

In [6]: import sys

In [7]: reload(sys)
<module ‘sys‘ (built-in)>

In [9]: sys.setdefaultencoding(‘utf8‘)

In [10]: name.encode(‘utf-8‘)
Out[10]: ‘\xe5\x92\x96\xe5\x95\xa1\xe5\x8f\xaf\xe4\xb9\x90‘


In [12]: name_utf8=name.encode(‘utf-8‘)

In [13]: len(name_utf8)
Out[13]: 12



模块

>>> import os
>>> os.system(‘df -h‘)
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda5              44G  2.2G   39G   6% /
tmpfs                 491M     0  491M   0% /dev/shm
0
>>> os.system(‘free -m‘)
             total       used       free     shared    buffers     cached
Mem:           981        741        239          0         29        587
-/+ buffers/cache:        125        855
Swap:         2047          0       2047
0

内置模块


 os内置模块
用于提供系统级别的操作

os.getcwd() 获取当前工作目录,即当前python脚本工作的目录os.chdir("dirname")  改变当前脚本工作目录;相当于shell下cd

os.curdir  返回当前目录: (‘.‘)

os.pardir  获取当前目录的父目录字符串名:(‘..‘)

os.makedirs(‘dirname1/dirname2‘)    可生成多层递归目录

os.removedirs(‘dirname1‘)    若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依此类推

os.mkdir(‘dirname‘)    生成单级目录;相当于shell中mkdir dirname

os.rmdir(‘dirname‘)    删除单级空目录,若目录不为空则无法删除,报错;相当于shell中rmdir dirname

os.listdir(‘dirname‘)    列出指定目录下的所有文件和子目录,包括隐藏文件,并以列表方式打印

os.remove()  删除一个文件

os.rename("oldname","newname")  重命名文件/目录

os.stat(‘path/filename‘)  获取文件/目录信息

os.sep    输出操作系统特定的路径分隔符,win下为"\\",Linux下为"/"

os.linesep    输出当前平台使用的行终止符,win下为"\t\n",Linux下为"\n"

os.pathsep    输出用于分割文件路径的字符串

os.name    输出字符串指示当前使用平台。win->‘nt‘; Linux->‘posix‘

os.system("bash command")  运行shell命令,直接显示

os.environ  获取系统环境变量

os.path.abspath(path)  返回path规范化的绝对路径

os.path.split(path)  将path分割成目录和文件名二元组返回

os.path.dirname(path)  返回path的目录。其实就是os.path.split(path)的第一个元素

os.path.basename(path)  返回path最后的文件名。如何path以/或\结尾,那么就会返回空值。即os.path.split(path)的第二个元素

os.path.exists(path)  如果path存在,返回True;如果path不存在,返回False

os.path.isabs(path)  如果path是绝对路径,返回True

os.path.isfile(path)  如果path是一个存在的文件,返回True。否则返回False

os.path.isdir(path)  如果path是一个存在的目录,则返回True。否则返回False

os.path.join(path1[, path2[, ...]])  将多个路径组合后返回,第一个绝对路径之前的参数将被忽略

os.path.getatime(path)  返回path所指向的文件或者目录的最后存取时间

os.path.getmtime(path)  返回path所指向的文件或者目录的最后修改时间




sys内置模块


sys.argv         命令行参数List,第一个元素是程序本身路径

sys.exit(n)        退出程序,正常退出时exit(0)

sys.version        获取Python解释程序的版本信息

sys.maxint         最大的Int值

sys.path           返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值

sys.platform       返回操作系统平台名称

sys.stdout.write(‘please:‘)

val = sys.stdin.readline()[:-1]

交互式

交互式:raw_input默认输出的都是字符串
input 输出的是数字
raw_input和input的区别:input本身格式是什么就调用什么,raw_input默认输出的都是字符串
 普通版本[[email protected] scripts]# vim test0.py
#!/usr/bin/env python
#_*_coding:utf-8 _*_
name = raw_input(‘Please input your name:‘)
age = raw_input("age:")
print name , age

升级版
[[email protected] scripts]# vim test1.py
#!/usr/bin/env python
#_*_coding:utf-8 _*_
name = raw_input(‘Please input your name:‘)
age = raw_input("age:")
job = raw_input("job:")
salary = raw_input("salary:")

print ‘‘‘
Personal information of %s:
        Name:   %s
        Age :   %s
        Job :   %s
        Salary: %s
---------------------
‘‘‘ % ( name,name,age,job,salary)

%s代表字符串
%d代表数字
%f 代表浮点数

流程控制

流程控制语句:
if语句
if else
#!/usr/bin/env python
#_*_coding:utf-8 _*_
name = raw_input(‘Please input your name:‘)
age = input("age:")
job = raw_input("job:")
salary = raw_input("salary:")

if age > 30:
        msg = ‘You are too fucking old!‘
else:
        msg = ‘You are still young‘

print ‘‘‘
Personal information of %s:
        Name:   %s
        Age :   %d
        Job :   %s
        Salary: %s
---------------------
%s
‘‘‘ % ( name,name,age,job,salary,msg)

if elif else
#!/usr/bin/env python
#_*_coding:utf-8 _*_
name = raw_input(‘Please input your name:‘)
age = input("age:")
job = raw_input("job:")
salary = raw_input("salary:")

if age > 40 :
        msg = ‘You are too fucking old!‘
elif age > 30 :
        msg = ‘You are still have a few years to hook up‘
else :
        msg = ‘You are still young‘

print ‘‘‘
Personal information of %s:
        Name:   %s
        Age :   %d
        Job :   %s
        Salary: %s
---------------------
%s
‘‘‘ % ( name,name,age,job,salary,msg)

for 语句:
#!/usr/bin/env python
#_*_coding:utf-8 _*_
name = raw_input(‘Please input your name:‘)
job = raw_input("job:")
salary = raw_input("salary:")
real_age = 29
for i in range(10) :
        age = input(‘age:‘)
        if age > 29 :
                print ‘big!‘
        elif age == 29 :
                print ‘\033[32;1mright!\033[0m‘   带颜色
                break
        else :
                print ‘small‘

        print ‘You still got %s shots!‘ % (9 - i)
print ‘‘‘
Personal information of %s:
        Name:   %s
        Age :   %d
        Job :   %s
        Salary: %s
---------------------
‘‘‘ % (name,name,age,job,salary)

while循环
[[email protected] scripts]# vim test4.py
count = 0
while True:
        print ‘loop;‘,count
        count +=1

版本1
print_num = input (‘which loop do you want it to be printed out?‘)
count = 0
while count < 100000000:
  if count == print_num:
    print ‘There you got the num:‘,count
    choice = raw_input(‘Do U want to continue the loop?y/n‘)
    if choice == ‘n‘:
      break
  else:
    print ‘Loop:‘,count
  count +=1

else:
  print ‘Loop:count‘,count

版本2
print_num = input (‘which loop do you want it to be printed out?‘)
count = 0
while count < 100000000:
  if count == print_num:
    print ‘There you got the num:‘,count
    choice = raw_input(‘Do U want to continue the loop?y/n‘)
    if choice == ‘n‘:
      break
    else:
      print_num = input(‘which loop do you want it to be printed out?‘)
  else:
    print ‘Loop:‘,count
  count +=1

else:
  print ‘Loop:count‘,count

版本3
[[email protected] software]# vim test.py
#_*_coding:utf-8_*_
print_num = input (‘which loop do you want it to be printed out?‘)
count = 0
while count < 100000000:
  if count == print_num:
    print ‘There you got the num:‘,count
    choice = raw_input(‘Do U want to continue the loop?y/n‘)
    if choice == ‘n‘:
      break
    else:
      while print_num <= count:
        print_num = input (‘which loop do you want it to be printed out?‘)
        print "the num have passed"
  else:
      print ‘Loop:‘,count
  count +=1

else:
  print ‘Loop:count‘,count
时间: 2024-10-11 21:29:16

python-1 python基础知识的相关文章

Python网络爬虫基础知识学习

对Python有一些简单了解的朋友都知识Python编程语言有个很强大的功能,那就是Python网络爬虫(http://www.maiziedu.com/course/python/645-9570/),一提到Python,就会想到相关的Python爬虫和scrapy等等,今天就来简单认识学习Python爬虫的基础知识,有了一定的相关爬虫知识,以后学习scrapy.urllib等等知识时,会相对轻松些. 爬虫: 网络爬虫是一个自动提取网页的程序,它为搜索引擎从万维网上下载网页,是搜索引擎的重要组

python的一些基础知识1(共计10)

python现在很热门,我们公司是一个教育机构也对这个很热门的东西情有独钟,我打算从今天开始用十节课的内容给大家讲解一下pathon的基础知识. 首先需要记住一些必备的尝试: 1:退出python交互式解释器的快捷键是CTRL+D 2:如果熟悉其他计算机语言,可能习惯性的在每行后以分号结束,python则不用,一行就是一行,不管多少,如果喜欢的话可以加上分号,但是不会起到任何作用. 3:在python中参与出发运算的两个数如果有一个是浮点数则运算结果就是浮点数,两个数如果都是整数则运算结果也为整

python相关的基础知识分享

今日面试,,才发现lambda和fibonacci都忘了怎么写,一年半载没有频繁的用py,以往的兴趣因生活的忙碌而显得生疏了,还好,之前学习整理的文档都放在了网站上,以备查验. 分享出来解决方案: http://www.pcswo.com/static/file/python/basis/function/generator-eg.py >>> m = lambda x,y,z: (x-y)*z >>> print(m(3,1,2)) 4 >>> de

python科学计算基础知识

1.导入基本函数库 import numpy as np 2.获取矩阵元素字节数 1 a=np.array([1,2,3],dtype=np.float32) 2 a.itemsizeoutput: 4 3.获取数组维数A.shape 例如 1 a=np.array([[1,2,3],[4,5,6]]); 2 3 a.shape 4 5 output:(2,3) 4.选取某一行或某一列元素, 注意numpy中数组起始坐标是0开始的,跟matlab中有区别.matlab中是从1开始的. pytho

python的一些基础知识

什么是算法? 算法就是计算机执行时的步骤,对于某一件事的详细描述.(事无巨细,全部考虑到,务必做到无遗漏,但是这是不可能的) 交互式解释器 python在启动是用于用户输入和程序返回结果的程序就是交互器. 十六进制,二进制 此处不做详细赘述,会更新整篇文章对此概念进行概述. 变量 变量就是一些数值的名字,也可以理解为容器.变量的命名不能使用数字开头,不能使用关键字,不能以下划线开头,在工作使用中,一般把大写字母命名的变量定义为全局变量,不能更改.变量在命名的时候遵循意义明显的原则的,名字就能代表

自学Python之四 爬虫基础知识储备

首先,推荐两个关于python爬虫不错的博客:Python爬虫入门教程专栏   和 Python爬虫学习系列教程 .写的都非常不错,我学习到了很多东西!在此,我就我看到的学到的进行总结一下! 爬虫就是一个不断的去抓去网页的程序,根据我们的需要得到我们想要的结果!但我们又要让服务器感觉是我们人在通过浏览器浏览不是程序所为!归根到底就是我们通过程序访问网站得到html代码,然后分析html代码获取有效内容的过程.下面让我们从最简单的爬虫开始: 爬取一个页面源代码 在python中,抓取网页的库是ur

Python学习心得——基础知识(六)

一.lambda表达式 1.定义 针对简单的函数,用lambda表达式来展现更方便. 2.样例 1 #普通函数 2 def f1(a): 3 return a+1 4 print(f1(7)) 5 6 #用lambda表达式来实现 7 8 f2=lambda a: a+1 9 print(f2(7)) 二.python内置函数 1.常见内置函数表 2.需要熟练掌握的内置函数如下 abs(),all(),any(),bin(),bool(),bytes(),chr(),dict(),dir(),d

菜鸟的Python之路--基础知识

刚刚开始自学Python,整理一下自己的学习感悟 刚刚开始学习Python,代码之路才刚刚开始第一个差距就感受到了.Python的标点符号与其他语言的差别,它每句后面都没有":". 变量的命名规则    1. 要具有描述性    2. 变量名只能_,数字,字母组成,不可以是空格或特殊字符(#?<.,¥$*!~)    3. 不能以中文为变量名    4. 不能以数字开头    5. 保留字符是不能被使用 常量 :不变的量 pie = 3.141592653....     在py

Python学习心得——基础知识(七)

一.冒泡排序 1.要求 把列表中无序的字符按小到大排序:[9,6,15,11,36,28] 2.思路 把列表中相邻的字符值进行排序,值的放到右侧,逐个比较直到满足要求,类似水中的气泡朝水面移动. 3.样例 针对列表[9,236,1,7,5,18]按从小到大排序 1 #!usr/bin/env python 2 # -*- coding: utf-8 3 4 lis=[9,236,1,7,5,18] 5 for i in range(1,len(lis)): #判断有几次大循环数据比较 6 for

Python练习题(基础知识练习题(三))

1.请用代码实现:利用下划线将列表的每一个元素拼接成字符串,li = ['alex','eric','rain'] #!/usr/bin/env python# -*- coding:utf-8 -*- li = ['alex','eric','rain']v = '_'.join(li)print(v) 2.查找列表中元素,移除每个元素的空格,并查找以 a 或 A 开头 并且以 c 结尾的所有元素.li = ["alec", " aric", "Alex