完全掌握Python(二)

变量

python的变量有整型、浮点数、字符串和布尔型,如下:

  • price = 10    #整型
  • rating = 4.9    #浮点数
  • name = ‘Kelemi’    #字符串
  • is_published = True    #布尔型

python的变量的命名标准是下划线命名方法,也就是全用小写单词,单词之间用下划线分隔。


输入

input函数可以获取输入

name = input('what is your name')favorite_color = input('what is your favorite color?')print(name + ' likes ' + favorite_color)

类型转换

有不少内置函数可以进行类型转换,用法看命名就知道,如

  • int()
  • float()
  • bool()

可以检查类型,用的是

  • type()

看个例子,用于磅与公斤的转换,很简单一目了然

weight_lbs = input('weight(lbs): ')weight_kg = int(weight_lbs) * 0.45print(weight_kg)

字符串

字符串可用单引号或双引号包起来,如果字符串本身包括双引号,可用单引号包起来,反之亦然。

course = 'python for "Beginners"'course = "python for 'Beginners'"

有多行时,可用三重引号,避免每行都要输引号以及拼接工作

course = ”’

Hi chen,

Here is my first email to you.

Thank you.

Kelemi 

”’

字符串相当于字符的列表(后面我们会详细讲解列表),python中强大的列表功能在获取子串方面简直不要太方便了。

course = ‘Python for Beginners’

print(course[0])    #输出第一个字符P

print(course[-1])    #输出最后一个字符s

print(course[0:3])    #输出Pyt

print(course[1:3])    #输出yt

print(course[0:-1])    #将最后的一个字符s去掉

print(course[:3])    #相当于[0:3]

print(course[3:])    #去掉前3个字符:hon for…到最后

print(course[:])    #全复制

字符串可以用大括号来格式化,使阅读更加直观。注意前缀是f开头,等同于字符串的format方法。

first = ‘chen’

last = ‘yongping’

msg = f'{first}{last} is a coder’

print(msg)

字符串方法介绍。注意python各方法不改变原始字符串,且都是大小写敏感的。

course = ‘python for Beginners’

  • print(len(course))
  • # 内置函数len计算字符串长度,它不特定用于字符串,其他列表等数据类型也可用。
  • print(course.upper())   # 转换成大写
  • print(course.lower())  # 转换成小写
  • print(course.title())  # 首字符大写
  • print(course.find(‘o’))  # 寻找第一个出现的字符或字符串,返回索引
  • print(course.replace(‘python’, ‘Javascript’))  # 替换
  • print(course)   #确认原始字符串未被改变
  • print(‘for’ in course)  # 查找字符串是否包括在内,返回True或False

算术运算符

print(10+3)     

print(10-3) 

print(10/3)     #3.33333浮点数

print(10//3)     #3 整数

print(10%3)     #1 余数

print(10**3)     #1000 3次方

与其他语言类似也可以简化用+=,-=等

x=10

x += 10

x -=10


运算优先级

x = 10 + 3 * 2 ** 3

如上,**优先级最高,*次之,然后是+

括号可以改变优先级


数学函数

x = 2.9

round(x)    # 3 四舍五入

abs(-2.9)    # 2.9 绝对值

这些是内置函数,如果要用到高级的数学函数,需要导入数学模块

import math

math.ceil(2.9)    # 3

math.floor(2.9)    # 2

可以用google搜索 “python3 math moudle”查看相关用法


If语句

python中,包含不用大括号,而是用缩进的方法,书写的对齐格式很重要。

is_hot = False

is_cold = False

if is_hot:

    print(“It’s a hot day”)

    print(“Drink plenty of water”)

elif is_cold:

    print(“It’s a cold day”)

    print(“Wear warm clothes”)

else:

    print(“It’s a lovely day”)

print(“Enjoy your day”) #总会被执行


逻辑运算

包括:

  • and
  • or
  • not

下面是一个银行贷款判断逻辑。

has_good_credit = True  #信用

has_criminal_record = False #犯罪记录

if has_good_credit and not has_criminal_record:

    print(“Eligible for loan”)  #允许贷款


比较运算符

包括:

  • >,>=
  • <,<=
  • ==,!=

While循环

简单例子

i = 1

while i <= 5:

    print(‘*’ * i)

    i = i+1

print(‘Done’)

while-else,猜数字游戏

guess_count = 0

guess_limit = 3

secret_number = 9

while guess_count < guess_limit:

    guess = int(input(‘Guess: ‘))

    guess_count += 1

    if guess == secret_number:

        print(‘You won!’)

        break

else:

    # 循环语句也可以有else,循环如果不中断,就会执行到else

    print(“Sorry,you failed!”)


for循环

用于遍历列表 或 范围的对象range

for item in ‘Python’:  # 字符串用为字符列表

    print(item)

for item in [‘chen’, ‘kelemi’, ‘xiaomi’]:

    print(item)

for item in range(10):

    print(item) #0,1,2…9

for item in range(5, 10):

    print(item) #5,6,7,8,9

for item in range(5, 10, 2):

    print(item) #步长为2,结果是5,7,9

与while类似,也有for-else的结构,只有当for语句中全部循环完未被中断(break)才会执行else语句,如下:

successfule = False

for number in range(3):

    print(‘Attempt’)

    if successfule:

        print(‘successful’)

        break

else:

    print(‘Attempt 3 times and failed’)


㠌套循环

for x in range(4):

    for y in range(3):

        print(f'({x},{y})’)


三元条件和链接比较运算符

python有接近自然语言的用法

  • 三元条件语句
    age = 22message = “Eligible” if age >= 18 else “Not eligible”print(message)
  • 链接比较运算符
    age = 22if 18 < age < 65:    print(“Eligible”)

函数

定义函数

一般先定义函数再调用,顺序调换可能会出错。

根据python的约定,函数定义与后面的调用语句建议空两格

def great_user():  # 定义函数    print("Hi there")    print("Welcome aboard")

print("start")great_user() # 调用函数print("Finish")

参数

函数可以传入多个参数,我们修改上面的函数

def great_user(first_name, last_name):  # 添加了2个参数    print(f"Hi {first_name}{last_name}")  # 使用传入的参数    print("Welcome aboard")

print("start")great_user('chen', 'yongping') # 传参调用函数print("Finish")

关键字参数

上面的参数是位置参数,传入时需要一一对应,python可以使用关键字参数传入。

我们可以将这句

great_user(‘chen’, ‘yongping’)

改成

great_user(last_name=’yongping’, first_name=’chen’)

尽管没按函数定义的顺序传入参数,但因使用了关键字参数,执行结果是一样的。

建议:

  • 大部分情况下可以使用位置参数
  • 在数值作为参数时,可以考虑用关键字参数提高可读性
  • 在混合使用位置参数和关键字参数时,先用位置参数,再用关键字参数

返回语法

用return返回

def square(number):

    return (number*number)

默认情况下所有函数都返回None,但不显式显示

def square(number):

    print(number*number)

    # return None  这一句可以不用写出来,是隐含的。

参数默认值

定义函数时,可以设置参数的默认值。调用函数时如果不明确给出值,则使用默认值。

def increment(number, by=1):

    # 设置参数by默认值为1

    return number+by

print(increment(2))

# 只传一个number值2,by使用默认值1,输出3

print(increment(2, 5))

# by传值为5,覆盖默认值1,输出7

xargs 接受多个参数

有时可能需要传入不确定个数的参数,对于python来说是很容易的,用* 符号就能做到。

def multiply(*numbers):

    # *numbers 表示可以接受多个参数,都存入数组numbers中

    total = 1

    for number in numbers:

        total *= number

    return total

print(multiply(1, 2, 3, 4, 5))

# 输出120

xxargs 接受多个键值对参数

有时候可能需要接受多个键值对,则需要使用两个*,这样会将传过来的键值对存到字典(后面的章节会讲到)中。

def save_user(**user):

    # user是一个字典,键值对都存入这个字典

    print(user)

save_user(id=1, name=’kelemi’, age=18)

# 输出一上字典 {‘id’: 1, ‘name’: ‘kelemi’, ‘age’: 18}


小结

本节介绍python的基本用法。下一节是python的重头戏,介绍python的列表、集合、字典。敬请期待。

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注