博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python-1 python基础知识
阅读量:6445 次
发布时间:2019-06-23

本文共 8069 字,大约阅读时间需要 26 分钟。

 

python第一课代码笔记

hello world

[root@heartbeat-data-1 python]# vim hello1.py   #!/usr/bin/env pythonprint ('hello world!')[root@heartbeat-data-1 python]# python hello1.pyhello 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目录,推荐这种写法

 

[root@heartbeat-data-1 python]# vim hello2.py   def main():print("hello")main()IndentationError: expected an indented block 缩进错误[root@heartbeat-data-1 python]# vim hello2.py   def main():  print("hello")main()

 

 

变量

[root@heartbeat-data-1 python]# vim plus.py   x = 2y = 3print (x + y)[root@heartbeat-data-1 python]# python plus.py5[root@localhost python]# vim plus.py   def main():  x = 2  y = 4   print(x + y)main()# python plus.py 6大写的一般是常量,小写的是变量[root@heartbeat-data-1 python]# vim test.py   x = 2y = 3z = xx = 5print ('Z:',z)print ('X:',x)[root@heartbeat-data-1 python]# python test.pyZ: 2X: 5[root@heartbeat-data-1 python]# vim test1.py   a = 'ABC'b = aa = 'XYZ'print(b)print(a)[root@heartbeat-data-1 python]# python test1.pyABCXYZ单行注释:#,多行注释:’’’ 三个引号#print ‘ddd’[root@localhost python]# vim zhushi.py   print '''print 'ddd'print 'ddd'print 'ddd'------------------ '''

[root@localhost 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次方,最多存65536UTF8:可变长度的[root@heartbeat-data-1 Python-3.4.4]# python>>> ord('a')97>>> ord('A')65 >>> a = 'wwp'>>> type(a)
>>> 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/shm0>>> os.system('free -m')             total       used       free     shared    buffers     cachedMem:           981        741        239          0         29        587-/+ buffers/cache:        125        855Swap:         2047          0       20470

 

内置模块

 
 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默认输出的都是字符串 普通版本 [root@python 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 升级版[root@python 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 = 29for 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循环[root@python scripts]# vim test4.py    count = 0while True:        print 'loop;',count        count +=1版本1print_num = input ('which loop do you want it to be printed out?')count = 0while 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 +=1else:  print 'Loop:count',count版本2print_num = input ('which loop do you want it to be printed out?')count = 0while 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 +=1else:  print 'Loop:count',count版本3[root@python software]# vim test.py    #_*_coding:utf-8_*_print_num = input ('which loop do you want it to be printed out?')count = 0while 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 +=1else:  print 'Loop:count',count

 

转载于:https://www.cnblogs.com/kafeikele/p/6096192.html

你可能感兴趣的文章
I/O 阻塞 中断的注意点
查看>>
什么是HTTP Basic Authentication?
查看>>
python --RecursionError: maximum recursion depth exceeded in comparison
查看>>
Highcharts使用二维数组生成图表
查看>>
spring bean作用域
查看>>
20180416
查看>>
判断一个数是否为素数
查看>>
15年用canvas画的
查看>>
HTML5新特性
查看>>
log4j.appender.AFile.File日志的相对路径
查看>>
乒乓球比赛模拟分析
查看>>
多元线性回归的预测
查看>>
Django——Model
查看>>
servlet体系和生命周期
查看>>
C#前台线程和后台线程区别
查看>>
服务器开发工具
查看>>
个人项目1修改版——自动生成四则表达式
查看>>
更改mysql数据库所在目录
查看>>
在 IIS6 中使用 GZIP
查看>>
Powershell DSC 5.0 - 资源的使用
查看>>