python入门基础教程(一)

1.如何在终端窗口打印消息?

print("Hello World");

2.如何使用变量存储信息,并打印该变量?

message = "Hello World";#变量定义无需var,int等操作符
print(message);

3.如何在一个字符串变量内填写小字符串?

message = "I love study 'python' very much"+'.';
print(message);#I love study 'python' very much.

4.如何将英文单词的首字母大写?

name = "jack smith";
print(name.title());#Jack Smith

5.如何将所有的字符串改成大写或者小写?

name = "Lucy gray";
print(name.upper());#LUCY GRAY
print(name.lower());#lucy gray

6.如何拼接字符串?

str1 = "hello";
str2 = "python";
print(str1+' '+str2);#hello python
print((str1+' '+str2).title());#Hello Python

7.如何让字符串缩进(使用制表符)?

print("python");  #python
print("\tpython");#    python(空白占4个字符)

8.如何让字符串换行?

str1 = " I am an Apple,";
str2 = " I am an Orange,";
str3 = " I am a  Banana.";
print(str1+str2+str3);
#I am an Apple, I am an Orange, I am a  Banana.

print(str1+'\n'+str2+'\n'+str3);
# I am an Apple,
# I am an Orange,
# I am a  Banana.

9.如何删除字符串末尾的空白,头部的空白以及头部和末尾的空白?

str = " abc ";#空代表此处有一个空格
print(str);#空abc空 
print(str.rstrip());#空abc
print(str.lstrip());#abc空
print(str.strip()); #abc

10.如何在python中进行四则运算?

print(2+3);#5
print(3-2);#1
print(3/2);#python2版本:1,python3版本:1.5
print(3*2);#6
print(3.0/2);#1.5
print(0.2+0.1);#0.3或者0.300000000004 计算机内部浮点数处理原因

11.如何将整数转化为字符串类型?

age = 11;
print('I am'+age+'years old');#error 不能将整数与字符串进行运算
print('I am'+' '+str(age)+' '+'years old');#I am 11 years old

12.如何在python中进行注释?

在python中,注释使用#,井号后面的内容会被python解释器忽略。

13.如何访问数组元素中的第二个元素?

arr = ['apple','banana','orange'];
print(arr[1]);#banana 数组索引从0开始,访问第i个元素则索引为i-1 

14.如何快速访问数组最后一个元素,倒数第3个元素?

arr = [1,2,3,4,5,6,7,8,9];
print(arr[-1]);#9 python中可以使用负值索引表示从数组末尾开始访问
print(arr[-3]);#7 运用这种特性能够快速的获取需要使用的值

15.如何修改,添加,删除数组中的元素?

arr = ['apple','banana','orange'];
arr[0]='papaya';
print(arr);#['papaya', 'banana', 'orange']
#直接利用索引对数组元素进行赋值修改,注意最后一个元素的下标应为-1或者len(arr) - 1

arr.append('watermelon');
print(arr);#['papaya', 'banana', 'orange', 'watermelon']
#append()方法用于直接在数组的末尾添加一个元素,同于js的push()方法

arr.insert(1,'pitch');
print(arr);
#['papaya', 'pitch', 'banana', 'orange', 'watermelon']
#insert(index,element);insert()方法接收两个参数,第一个为需要在数组中哪个位置(索引从0开始)插入值,第二个参数为需要插入的值。

del arr[0];
print(arr);
#['pitch', 'banana', 'orange', 'watermelon']
#del语句,注意此处语法不是方法,所以arr.del()这个语法是错误的。使用del语句删除数组中的元素需要传递元素的索引,也就是说你必须知道你要删除的元素是在数组中的哪个位置。

delElement = arr.pop();
print(arr);
#['pitch', 'banana', 'orange']
print(delElement); #watermelon
#使用pop(index)方法,可以接收一个删除元素的索引参数,在不填写参数的情况下,就是append()方法的相反操作,可以删除数组中的最后一个元素并返回该元素,该方法与del语句相比最大的不同就是pop()方法会返回被删除的元素而del语句则直接删除。

#当接收一个参数的情况下可以删除数组中任意位置的元素。
arr.pop(0);
print(arr);#['banana', 'orange']

arr.remove('banana');
print(arr);#['orange']
#使用remove(elementValue)方法可以在不知道元素在数组中的索引,但是知道元素的值的情况下从数组中删除该元素。

arr2 = [1,2,3,4,3];
arr2.remove(3);
print(arr2);#[1,2,4,3]
#注意,remove()方法只会删除该元素在数组中第一次出现的位置的值,如果需要删除数组中所有该元素的值,需要使用遍历操作。

16.如何对数组进行排序?

arr = ['bb','aa','dd','cc','ee'];
arr.sort();
print(arr);#['aa', 'bb', 'cc', 'dd', 'ee']
#使用sort()方法可以快速的对数组进行排序,sort()方法会对数组进行永久性的排序操作,如果想让数组进行反向排序,则对sort()传递一个参数 reverse = True;
arr.sort(reverse = True);
print(arr);#['ee', 'dd', 'cc', 'bb', 'aa']

arr2 = [1,2,4,3,6,5];
print(sorted(arr2));#[1, 2, 3, 4, 5, 6]
print(arr2);#[1, 2, 4, 3, 6, 5]
#sorted()方法可以对数组进行临时排序,不会改变原有的数组元素顺序。

arr3 = [1,3,2,7,4,5];
arr3.reverse();
print(arr3);#[5, 4, 7, 2, 3, 1]
arr3.reverse();
print(arr3);#[1, 3, 2, 7, 4, 5]
#使用reverse()方法可以反转数组元素的排列顺序,再次使用reverse()方法会再次反转数组元素的排列顺序。

17.如何获取字符串或者数组的长度?

arr = [1,2,3,4,5];
str = "123456 ";
print(len(arr));#5
print(len(str));#7
#使用len(element)方法可以快速的取得元素的长度

18.如何遍历数组?

arr = [1,2,3,4,5];
for item in arr:
    print(item);
# 1 2 3 4 5 此处打印结果会换行
#循环时如何进行的,for item in arr:先获取arr中第0个元素,将该元素的值赋值给item,然后打印item,由于列表中还有元素,获取arr中第1个元素,将该元素赋值给item,打印item,直到数组中没有元素跳出循环。
#for循环语法,注意循环控制语句后面跟:(半角冒号),循环体需要进行缩进操作,如果没有缩进操作将会只执行一次,甚至会报错。

arr2 = [1,2,3,4,5];
for item in arr2:
print(item);# expected an indented block 需要一段缩进的代码块

arr3 = [1,2,3,4,5];
for item in arr3:
    print(item);
print('I only print once');
#1 2 3 4 5 I only print once'
#如果需要执行多条循环体语句,注意一定要缩进代码。

arr4 = [1,2,3];
for item in arr4:
    print(item);
    print('I print the '+str(item)+' times');
# 1 I print the 1 times
# 2 I print the 2 times
# 3 I print the 3 times
#注意上面代码的item需要加上类型转换,否则会报错。

19.如何创建数字数组?

numberArr = list(range(1,5));
print(numberArr);#[1, 2, 3, 4] 注意不包括末尾元素
#使用函数range()还可以指定步长
numberArr2 = list(range(2,11,2));
print(numberArr2);#[2, 4, 6, 8, 10]
#range()函数从2开始,然后不断的加2,直到达到或者超过终值11,注意因为不包括末尾元素所以不会输出12

20.如何快速的获得数字数组中最小的元素,最大的元素和总和?

numberArr = [0,1,2,3,4,5];
min = min(numberArr);
max = max(numberArr);
sum = sum(numberArr);
print(min);#0
print(max);#5
print(sum);#15

21.列表解析,列表解析的意思就是能够快速的生成列表
列表解析将for循环和创建新元素的代码合并成一行,并自动添加新元素。

squares = [value**2 for value in range(1,11)];
print(squares);#[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

22.如何在python中使用切片(即操作数组中的一部分数据)?

arr = [1,2,3,4,5,6];
print(arr[0:3]);#[1,2,3]
print(arr[1:4]);#[2,3,4]
print(arr[-3:]);#[4,5,6]
print(arr[2:]);#[3,4,5,6]
print(arr[:]);#[1,2,3,4,5,6]
#语法为第start索引值到第end索引值,但不包括end索引值之间的数据,当start为负数的时候,代表从数据末尾开始向前,当不指明start和end值的时候代表数组的所有元素。

23.如何遍历数据的切片和复制数组?

arr = [1,2,3,4,5,6];
for value in arr[:4]:
    print(value);#1,2,3,4
#切片的遍历与数据的遍历相同,再次强调使用for循环的时候,请注意循环体的缩进,否则程序会报错。

brr = arr;
print(brr);#[1,2,3,4,5,6];
arr.append(7);
brr.append(8);
print(arr);
print(brr);
#以一般的逻辑我们认为结果会是这个样子的 
#arr = [1,2,3,4,5,6,7];
#brr = [1,2,3,4,5,6,8];
#然鹅,结果却是这样子的:
#arr = #brr = [1, 2, 3, 4, 5, 6, 7, 8];
#这涉及到的其实是python的数据结构有关,详见这篇文章[python——赋值与深浅拷贝](http://www.cnblogs.com/Eva-J/p/5534037.html);那么如何获得我们想要的结果呢?我们需要使用python提供的复制数组方法。

brr = arr[:];
arr.append(7);
brr.append(8);
print(arr);#[1, 2, 3, 4, 5, 6, 7];
print(brr);#[1, 2, 3, 4, 5, 6, 8];

24.如何创建一系列不可修改的元素?

arr = (50,100);#这种语法在python中表示创建一个元组,元组与数组的不同之处在于元组是一组静态常量,不能使用下标进行修改,但可以进行访问,如果需要修改元组的数据,需要对元组进行重新赋值。

print(arr);#(50, 100)
arr = (100,200);
print(arr);#(100, 200)

25.如何在python使用if,if else,if-elif-if语句?

arr=[1,2,3,4];
for item in arr:
    if item >= 3:
        print(item);#3,4
#python中 if后面跟上条件表达式,然后加上冒号,循环体同for语句,需要进行缩进操作。
arr=[1,2,3,4,5];
middle = arr[len(arr)/2];
for item in arr:
    if item > middle:
        print(str(item) + 'is big than the middle num')
    else:
        print(str(item) + 'is small than the middle num')

#1 is small than the middle num
#2 is small than the middle num
#3 is small than the middle num
#4 is big than the middle num
#5 is big than the middle num

#实际上应该输出3是和middle num相等的,改写如下:

arr=[1,2,3,4,5];
middle = arr[len(arr)/2];
for item in arr:
    if item > middle:
        print(str(item) + 'is big than the middle num')
    elif item == middle:
        print(str(item) + 'is the middle num')
    else :
        print(str(item) + 'is small than the middle num')

#1 is small than the middle num
#2 is small than the middle num
#3 is the middle num
#4 is big than the middle num
#5 is big than the middle num

#这里注意的就是在python里面,if-else 的用法与其他语言大致相同,但是else if 语句在python中是使用 elif 语句来代替的。

26.如何检查两个值是否相等?

a = 1;
b = '1';
print(a==b);#False
#在python中变量是区分类型的,int类型是不会等于string类型的。

c = 'apple';
d = 'Apple';
print(c==d);#False
print(c.lower() == d.lower());#True
print(c!=d);#True
#python中变量比较严格区分大小写,在某些特殊场景下我们不管用户的输入是大小还是小写,例如验证码的比较中,我们都把输入转化为小写进行比较。

27.如何在python中使用 & 和 || 条件的语句?

a = 1;
b = 3;
if(a>0 and b>0):
    print('num is all big than 0')
elif (a>0 or b>0):
    print('one of the num is big than 0')
else :
    print('sorry,none of the num is big than 0')

#num is all big than 0

28.python中如何快速的判断一个数是否在数组中,以及一个数据是否为空?

arr = [1,2,3,4,5];
brr = [];
a = 1;
b = 6;
if a in arr:
    print(str(a) + ' ' + ' is in arr')
if b not in arr:
    print(str(b) + ' ' + ' is not in arr')
if brr:
    print('brr is not empty')
else :
    print('brr is an empty array')

#1 is in arr
#6 is not in arr
#brr is an empty array

#python中使用in判断一个元素是否在数组中,使用not in判断一个元素是否不在数组中,直接使用if arr判断一个数据是否为空,当然也可这样判断
#if len(brr) == 0: print('brr is an empty array') 

29.在python中如何创建和操作一个Object对象?

obj = {
    'name':'liuda',
    'sex':'female',
    'age':33
}
print(obj)#{'age': 33, 'name': 'liuda', 'sex': 'female'}

#访问对象里面的值可以这样使用:

a = obj['name'];
print(a);#liuda

#注意,在这里以obj.name进行访问的话将会报错。

#我们可以这样添加一个新的属性在对象里面:

obj['address'] = 'a place'
print(obj)
#{'age': 33, 'address': 'a place', 'name': 'liuda', 'sex': 'female'}

#细心的人还会发现,在python中输出的结果默认是经过排序的。

#修改对象的某个值的方式和新建类似:

obj['sex']='man'
print(obj)
#{'age': 33, 'address': 'a place', 'name': 'liuda', 'sex': 'man'}

#在某些特殊的情况下我们可能需要删除某个对象里面的属性,那么我们可以这样操作:

del obj['age']
print(obj)
#{'address': 'a place', 'name': 'liuda', 'sex': 'man'}

#类似的情况很多,这里假设是对人的年龄进行保密,del语句将会删除对象中相应的键值对,使用时必须要指定对象的名字和其中要删除的属性的键名。

30.python中如何遍历一个对象?

user = {
    'account':'x123456',
    'name':'刘大',
    'sex':'man'
}

#遍历所有的键-值

for key,value in user.items():
    print('\nkey: '+ key)
    print('value: '+ value)

# key: account
# value: x123456

# key: name
# value: 刘大

# key: sex
# value: man

#使用for循环进行遍历对象的时候,可以声明两个变量,用于存储键-值对中的键和值,这两个变量可以使用任何语义化的名称。

#item()方法会返回一个键-值对列表

#有的时候我们并不关心对象中的值,而注重对象中的属性名,这时我们只想遍历对象中的所有键,那么我们可以这样操作:

for key in user.keys():
    print(key)#account name sex

#当然有时候我们想要遍历键的时候又得到对应的值,这时我们可以这样访问到键对应的值:
for key in user.keys():
    print(key)#account name sex
    print(user[key])
    #account x123456 name 刘大 sex man

#在某些情况下我们想要结果按照一定的顺序排列起来,还记得之前用到的sorted()方法吗?

fruits = {
    'banana':2,
    'orange':5,
    'apple':7
}
for key in fruits.keys():
    print(key)
#orange banana apple

for key in sorted(fruits.keys()):
    print(key)
#apple banana orange

#再次回顾下,sorted()方法返回的是一个临时排序,不会改变对象原有的结构,而使用sort()方法将会返回一个永久性的排序,对象内部结构会发生变化。

#同理,如何只遍历对象中所有的值呢?

for value in fruits.values():
    print(value)#5,2,7

#思考,目前都是考虑对象中没有重复的值,那么假如对象中有重复的值呢?要如何进行遍历提取没有重复的值?

ages = {
    'liuda':33,
    'zhangsan':25,
    'lisi':36,
    'xiaoming':25
}

for values in ages.values():
    print(value)#33,25,36,25

#假如我们只需要提取所有的年龄数据,而不管其中有多少个25岁的人,我们需要进行下面的操作:

for age in set(ages.values()):
    print(age)#33,25,36

#set()方法会返回一个没有重复数据的列表。

#这些都是一些比较简单的列表,现实情况中的对象更加复杂:

milks = [
    {
        'name':'旺仔牛奶',
        'product':['广州明旺','浙江大旺','内蒙古旺旺'],
        'size':[
            {
                'sizeName':'125ml',
                'sizeNum':'24',
                'sizePackage':'纸盒'
            },
            {
                'sizeName':'245ml',
                'sizeNum':'12',
                'sizePackage':'铁罐',
            }
        ]
    },
    {
        'name':'蒙牛早餐奶',
        'product':['内蒙古蒙牛','湖南蒙牛','广州蒙牛'],
        'taste':['核桃味','燕麦味','巧克力味'],
        'size':[
            {
                'sizeName':'245ml',
                'sizeNum':'12',
                'sizePackage':'纸盒',
            }
        ]
    }
]
print(milks[0]['name'])#旺仔牛奶

31.如何获取用户的输入?

#input()函数让程序暂停,等待用户输入一些文本,python在输入转化为字符串存储起来。
#注意,在python2.7需要使用raw_input()而不是input();
message = input('please enter some text:')
print(message)

32.在python中如何使用while循环?

start  = 1
while start <= 5:
    print(start)
    start += 1
#1,2,3,4,5

#在很多情况下,我们需要处理用户的退出,推荐的是使用一个标志变量,当满足一定条件的时候标志变换。

flag = True;
start = 1
while flag:
    print(start)
    start += 1
    if(start == 3):
        flag = False
#1,2        

33.break与continue的对比?

#break语句适用于立即退出while循环,不再运行余下的代码,不管条件测试的结果如何
#continue语句则会返回到循环开头,并根据条件测试结果决定是否继续执行循环。

#break
start = 0
while start <= 10:
    start += 1
    if(start % 2 == 0):
        print(start)
        break;

#在使用break语句下,上面小程序在1-10之间输出偶数2之后就停止运行

#continue
start = 0
while start <= 10:
    start += 1
    if(start % 2 == 0):
        print(start)
        continue;
#在使用continue下则会输出正确结果,2,4,6,8,10

#回顾,在前面我们学习过如何在一个数组中删除一个指定的元素,
arr = [1,2,3,4,5]
arr.remove(1)
print(arr)#[2, 3, 4, 5]
#那么假如要删除的数在数组中出现多次,默认remove()只会删除第一次出现的数,这时while循环起作用了。
brr = [1,2,3,4,5,1]
brr.remove(1);
print(brr);#[2, 3, 4, 5, 1]

crr = [1,2,3,4,5,1]
while 1 in crr:
    crr.remove(1)
print(crr)#[2, 3, 4, 5]
#while 循环和in判断结合使用可以进行删除。

34.python如何自定义函数?

#python使用关键字def进行声明函数

def greet():
    """Hello World"""
    print('Hello World')

greet()#Hello World
#三个引号括起来的叫做 **文档字符串**,用来作为函数的注释,描述了此函数是做什么的。

35.python中函数的实参和形参?

def greet_user(userName):
    print('Hello:'+userName)

greet_user('Lucy')#Hello:Lucy

#在定义函数的时候userName是一个形参,在调用函数的时候参数实参Lucy。传入的实参存储在形参中。

#位置实参

#在调用函数的时候,在不指定形参名的情况下,python默认是按照形参的顺序进行实参的调用的,直接看例子:

def greet_user(userName,userAge):
    print("\nHello: " + str(userName))
    print("\nYou are "+ str(userAge) + " years old")

greet_user('Linda',12)

#Hello: Linda
#You are 12 years old

#在传入正确的形参位置时,结果能够正常的输出,但假如位置写错的话,输出就会意想不到

greet_user(12,'Lucy')

#Hello: 12
#You are Lucy years old

#使用位置实参的时候,一定要保证实参和形参的传入顺序一致,否则将会出现意料之外的情况,在需要传入的参数比较多的情况下,推荐使用**关键字实参**。

greet_user(userName='Lili',userAge=16)

#Hello: Lili
#You are 16 years old

#如何传递任意数量的参数,在你预先不指定函数接收多少个参数的情况下可以传递任意参数。

def make_cake(*params):
    print(params)

make_cake('flour','egg')#('flour', 'egg')
make_cake('flour','egg','cream')#('flour', 'egg', 'cream')
make_cake('flour','egg','cream','strawberry')
#('flour', 'egg', 'cream', 'strawberry')

#如何结合使用位置实参和任意数量实参

#如果要让函数接受不同类型的实参,必须要将函数定义中将接纳任意数量实参的形参放在最后,python会先匹配位置实参和关键字实参,再将余下的实参都收集到最后一个形参中。

def get_userInfo(userName,phone,*additional):
    print("\nuName:"+ userName)
    print("\nuPhone:"+ str(phone))
    print(additional)

get_userInfo('Liuda',13456789562,'address:xxxProvincexxxCity','age:22')

#uName:Liuda
#uPhone:13456789562
#('address:xxxProvincexxxCity', 'age

36.python如何导入外部文件和函数?

#python中使用import语句进行导入当前程序文件中使用的模块

#student.py
def add_student(sNo,sName):
    print(sNo+':'+sName)

add_student('1111','Single')#1111:Single

#teacher.py
import student
student.add_student('222','double')#222:double

#注意在导入整个模块的时候我们需要使用 模块名.方法名 进行外部模块方法的使用。

#导入特定的函数:

from module_name import function

from student import add_student
#这种导入方式就可以在 teacher.py 中直接调用add_student方法了。

#我们还可以给导入的方法另起名字,as 关键字后面跟上新的名字

from student import add_student as add_one_student

#导入模块中的所有函数,可以使用:

from student import *

#推荐不要使用导入所有函数的写法,而采用 import student 这种写法,采用这种写法的话调用 student.func 可以避免由于函数名相同引起的错误。

这里介绍了python中使用的一些基本知识,下一章将会讲解有关面向对象编程和文件操作等相关知识。

猜你喜欢

转载自blog.csdn.net/xjl271314/article/details/78435756