Python基础语法

现在写Python大多使用Pycharm,关于使用vs的教程基本没有。

就将自己学习过程做一个记录,以便参考。

一、Python基础语法

Python的基础语法我参考的是菜鸟教程https://www.runoob.com/python/python-tutorial.html

1.中文编码  (防止出现乱码)

    # -*- coding: UTF-8 -*-

2.注释

(1)#    单行注释

(2)'''或"""   多行注释

3.行和缩进

Python中没有{}来表示代码段,同一代码段的缩进(空格数)必须相等。

4.多行语句

Python中可以用(\)将一行语句分成多行显示。(方便程序员阅读)

Python中也没有语句结束符(;),换行就是新一条语句。

例:

total = item_one + \
          item_two + \ 
	item_three

5.条件语句

例:

#if的条件要以(:)结尾
if expression : 
	suite 
elif expression : 
	suite 
else : 
	suite 

6.循环语句

例:

#论:的重要性
while:
#或
for:
#更具体的例子,和PHP中的foreach有点像
for letter in 'Python':  
    print '当前字母 :', letter 
fruits = ['banana', 'apple', 'mango'] 

for fruit in fruits: 	
    print '当前水果 :', fruit 
for index in range(len(fruits)): #range返回一个序列的数
    print '当前水果 :', fruits[index] 

7.数据类型

Python的数据类型有5种:Numbers(数字)、String(字符串)、List(列表)、Tuple(元组)、Dictionary(字典)

  • Numbers(数字):

       数字数据类型用于存储数值。

       例:

var1 = 1 #var1是变量名,创建新对象的时候不需要和c语言一样声明类型(这一点和PHP很像)

       使用del语句删除一些对象的引用。

       例:

del var_a, var_b #var_a,var_b是变量名

       Python支持四种不同的数字类型:int(有符号整型)、long(长整型[也可以代表八进制和十六进制])、float(浮点型)、complex(复数)

       复数由实数部分和虚数部分构成,可以用 a + bj,或者 complex(a,b) 表示, 复数的实部 a 和虚部 b 都是浮点型。math模块用于数学运算,cmath模块用于复数运算。需要写import math/import cmath.

       字符串格式化:

#和C语言的printf很像
print "My name is %s and weight is %d kg!" % ('Zara', 21) #My name is Zara and weight is 21 kg!

       例: 

  • String(字符串)
s = "a1a2···an"(n>=0)  #同样不用声明类型

        python的字串列表有2种取值顺序:

  • 从左到右索引默认0开始的,最大范围是字符串长度少1
  • 从右到左索引默认-1开始的,最大范围是字符串开头

       如果要实现从字符串中获取一段子字符串的话,可以使用 [头下标:尾下标] 来截取相应的字符串,其中下标是从 0 开始算起,可以是正数或负数,下标可以为空表示取到头或尾。

[头下标:尾下标] 获取的子字符串包含头下标的字符,但不包含尾下标的字符。

例:

s = 'abcdef'
print s[1:5]   #输出'bcde'

加号(+)是字符串连接运算符,星号(*)是重复操作。

  • List(列表)

List和数组有点像。

例:

list = [ 'runoob', 786 , 2.23, 'john', 70.2 ] 
tinylist = [123, 'john'] 
print list # ['runoob', 786, 2.23, 'john', 70.2]
print list[0] # runoob
print list[1:3] #[786, 2.23]
print list[2:] # [2.23, 'john', 70.2]
print tinylist * 2 # [123, 'john', 123, 'john']
print list + tinylist ['runoob', 786, 2.23, 'john', 70.2, 123, 'john']

+  组合,* 重复,len 求长度,for 迭代,in 判断是否存在。

列表函数 cmp 比较,len 长度,max 最大值,min 最小值,list 元素转换为列表。

列表方法 append 添加,count 出现次数,extend 拓展。

  • Tuple(元组)

Tuple和List有点像

例:

tuple = ( 'runoob', 786 , 2.23, 'john', 70.2 ) 
tinytuple = (123, 'john') 
print tuple # ('runoob', 786, 2.23, 'john', 70.2)
print tuple[0] # runoob
print tuple[1:3] # (786, 2.23)
print tuple[2:] # (2.23, 'john', 70.2)
print tinytuple * 2 # (123, 'john', 123, 'john')
print tuple + tinytuple # ('runoob', 786, 2.23, 'john', 70.2, 123, 'john')

 元组和列表最大的区别是不能二次赋值,相当于只读列表。

例:

print 'abc', -4.24e93, 18+6.6j, 'xyz' #abc -4.24e+93 (18+6.6j) xyz 
x, y = 1, 2 
#print用 , 连接字符串输出
print "Value of x , y : ", x,y #Value of x , y : 1 2
  • Dictionary(字典)

Dictionary和PHP的数组有点像,都是通过索引存取。同时也和List有点像。

列表是有序的对象集合,字典是无序的对象集合。

两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。

字典用"{ }"标识。字典由索引(key)和它对应的值value组成。

索引不可以重复,不可以是列表

例:

dict = {} 
dict['one'] = "This is one" 
dict[2] = "This is two"
tinydict = {'name': 'john','code':6734, 'dept': 'sales'} 
print dict['one'] # This is one
print dict[2] # This is two
print tinydict # {'dept': 'sales', 'code': 6734, 'name': 'john'}
print tinydict.keys() # ['dept', 'code', 'name']
print tinydict.values() # ['sales', 6734, 'john']

8.运算符

算术运算符:+、-、*、/、%、**(幂)、//(取整除)

比较运算符:==、!=、<>、>、<、>=、<=

赋值运算符:=、+=、-=、*=、/=、%=、**=、//=

位运算符:&、|、^(异或)、~、<<(左移)、>>(右移)

逻辑运算符:and、or、not

成员运算符:引用对象是不是同一个成员运算符:引用对象是不是同一个

9.时间和日期

例:

ticks = time.time() 
print "当前时间戳为:", ticks #当前时间戳为: 1459994552.51
#获取当前时间
localtime = time.localtime(time.time()) 
print "本地时间为 :", localtime
#获取格式化时间
localtime = time.asctime( time.localtime(time.time()) ) 
print "本地时间为 :", localtime

10.函数

  • 定义函数(不需要定义返回类型)

例:

def functionname( parameters ):
     "函数_文档字符串"#相当于注释
     function_suite
     return [expression]
  • 函数调用

和c语言一样。

例:

# 定义函数
def printme( str ):
   "打印任何传入的字符串"
   print str;
   return;
 
# 调用函数
printme("我要调用用户自定义函数!");
printme("再次调用同一函数");
  • 参数传递

我感觉和c语言一样。

  • 参数

下面是比较特别的几中参数类型

关键字参数(关键字参数顺序不重要)

例:

def printinfo( name, age ):
   "打印任何传入的字符串"
   print "Name: ", name;
   print "Age ", age;
   return;
 
#调用printinfo函数
printinfo( age=50, name="miki" );

#结果
#Name:  miki
#Age  50

默认参数(我觉得和PHP有点像)

例:

def printinfo( name, age = 35 ):
   "打印任何传入的字符串"
   print "Name: ", name;
   print "Age ", age;
   return;
 
#调用printinfo函数
printinfo( age=50, name="miki" );
printinfo( name="miki" );

#输出
#Name:  miki
#Age  50
#Name:  miki
#Age  35

不定长参数

加了星号(*)的变量名会存放所有未命名的变量参数。

例:

def printinfo( arg1, *vartuple ):
   "打印任何传入的参数"
   print "输出: "
   print arg1
   for var in vartuple:
      print var
   return;
 
# 调用printinfo 函数
printinfo( 10 );
printinfo( 70, 60, 50 );

#输出:
#10
#输出:
#70
#60
#50
  • 匿名函数

匿名函数只有一行,只包含一个语句

例:

lambda [arg1 [,arg2,.....argn]]:expression

例:

sum = lambda arg1, arg2: arg1 + arg2;
 
# 调用sum函数
print "相加后的值为 : ", sum( 10, 20 ) #相加后的值为 :  30
print "相加后的值为 : ", sum( 20, 20 ) #相加后的值为 :  40

11.模块

Python 模块(Module),是一个 Python 文件,以 .py 结尾,包含了 Python 对象定义和Python语句。

  • 模块的引入(和java引入包有点像)

例:

# import语句
import support
 
# 现在可以调用模块里包含的函数了
support.print_func("Runoob")

例:

#导入模块 fib 的 fibonacci 函数,使用如下语句:
from fib import Fibonacci
#把一个模块的所有内容全都导入到当前的命名空间,使用如下语句: 
from math import *

12.全局变量

Python中变量默认局部变量,想要成为全局变量需要 global 声明

例:

Money = 2000
def AddMoney():
   # 加上注释会报错(Money未初始化)
   # global Money
   Money = Money + 1
 
print Money
AddMoney()
print Money

13.特殊函数

(1)dir()函数

dir() 函数一个排好序的字符串列表,内容是一个模块里定义过的名字。返回的列表容纳了在一个模块里定义的所有模块,变量和函数。

(2)globals() 和 locals() 函数

在函数内部调用 locals(),返回的是所有能在该函数里访问的命名。

在函数内部调用 globals(),返回的是所有在该函数里能访问的全局名字。

两个函数的返回类型都是字典。名字可以用 keys() 函数摘取。

(3)reload() 函数

该函数会重新导入之前导入过的模块。

14.I/O函数

(1)打印到屏幕

例:

#用","隔开表达式
print "Python 是一个非常棒的语言,不是吗?"

(2)读入键盘输

raw_input和input

例:

#raw_input([prompt]) 函数从标准输入读取一个行,并返回一个字符串
str = raw_input("请输入:")
print "你输入的内容是: ", str
##输出
#请输入:Hello Python!
#你输入的内容是:  Hello Python!

#input 可以接收一个Python表达式作为输入,并将运算结果返回
str = input("请输入:")
print "你输入的内容是: ", str
##输出
#请输入:[x*5 for x in range(2,10,2)]
#你输入的内容是:  [10, 20, 30, 40]

(3)文件操作

例:

#file_name:文件名,access_mode:打开文件的模式,buffering:如果buffering的值被设为0,就不会有寄存。如果buffering的值取1,访问文件时会寄存行。如果将buffering的值设为大于1的整数,表明了这就是的寄存区的缓冲大小。如果取负值,寄存区的缓冲大小则为系统默认。
#打开文件
file object = open(file_name [,access_mode][,buffering])

#写文件
fo.write( "www.runoob.com!\nVery good site!\n")

#读文件
str = fo.read(10)
print "读取的字符串是 : ", str

#关闭文件
fo.close()

其他的操作不都写出来了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值