今天开始尝试以自提问的方式学习python这门语言,基本就是问自己一些能想到的问题,然后解决这些问题,来弄懂如何写python了。对于编程语言我已有了大致的了解,作为脚本语言python应该也有类似的结构。我们先来了解下脚本语言的一些特性。
弱类型
相对于java 这种需要声明变量类型的语言 js则不需要声明指定的变量类型 解释器通过变量的值就能推断 那python呢?
java
private String str;
private int i;
js
var a = 1;
var b = "string";
python
age = 3
if age >= 18:
print('adult')
elif age >= 6:
print('teenager')
else:
print('kid')
第一个问题 python也是弱类型的语言吗?
明显是的,我们看下变量定义的时候甚至都不需要一个var关键字。从上面的python代码我们可以知道这个语言的一些规则:
- 变量无类型直接声明
- 函数调用和一般编程语言类似
- 没有代码块{}变现 原来使用缩进来代替代码块 这个有点不严谨吧
- 判断语句没有使用()号 而且以:来作结尾
第二个问题 如何处理字符串?
java和js中对字符串的处理都很简单也很类似
java
String str1 = "1";
String str2 = "2";
str1+=str2;
js
var str1 = "1";
var str2 = "2";
str1+=str2;
python
str1 = "1";
str2 = "2";
str1+=str2;
这样获得了规则5
- 字符串拼接处理类似js
第三个问题 如何自定义函数并调用?
python
def my_abs(x):
if x >= 0:
return x
else:
return -x
my_abs(123);
- 函数定义以def作为关键字 函数名称(参数1,参数2),使用*return *作为关键字返回。
第三个问题 有没有命名空间的概念 自定义的函数和内置函数如果重名先调用谁呢?
python
!/usr/bin/env python3
-- coding: utf-8 --
' a test module '
author = 'Michael Liao'
import sys
def test():
args = sys.argv
if len(args)==1: > print('Hello, world!')
elif len(args)==2:
print('Hello, %s!' % args[1])
else:
print('Too many arguments!')
if name=='main':
test()
- 和java的包结构类似,每个py文件都是一个模块,导入用import命令, 命名空间就是文件的目录结构,不同命名空间中变量和函数的可以重复,但要小心不能和系统内置的重复了