自学入门不在困难,初学者挑战学习Python编程30天
Posted 世上本无鬼
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了自学入门不在困难,初学者挑战学习Python编程30天 相关的知识,希望对你有一定的参考价值。
坚持坚持再坚持!!!
如果文章对于你有帮助,欢迎收藏、关注、点赞与订阅专栏
有任何疑问欢迎私信
目录
第 11 天 - 函数
到目前为止,我们已经看到了许多内置的 Python 函数。今天,我们将重点介绍自定义函数。什么是函数?在开始制作函数之前,让我们先了解一下什么是函数以及为什么需要它们?
定义函数
函数是设计用于执行特定任务的可重用代码块或编程语句。为了定义或声明一个函数,Python 提供了def关键字。以下是定义函数的语法。只有在调用或调用函数时才执行代码的功能块。
声明和调用函数
当我们创建一个函数时,我们称之为声明一个函数。当我们开始使用它时,我们称它为调用或调用一个函数。函数可以带参数或不带参数声明。
# 语法
# 声明函数
def function_name ():
代码
代码
# 调用函数
function_name ()
无参数函数
函数可以不带参数声明。
例子:
def generate_full_name ():
first_name = 'Asabeneh'
last_name = 'Yetayeh'
space = ''
full_name = first_name + space + last_name
print ( full_name )
generate_full_name () #调用一个函数
def add_two_numbers ():
num_one = 2
num_two = 3
total = num_one + num_two
print ( total )
add_two_numbers ()
返回值的函数 - 第 1 部分
函数也可以返回值,如果函数没有return语句,则函数的值为None。让我们使用 return 重写上述函数。从现在开始,当我们调用函数并打印它时,我们会从函数中获取一个值。
def generate_full_name ():
first_name = 'Asabeneh'
last_name = 'Yetayeh'
space = ''
full_name = first_name + space + last_name
return full_name
print ( generate_full_name ())
def add_two_numbers ():
num_one = 2
num_two = 3
total = num_one + num_two
返回 总
打印( add_two_numbers () )
带参数的函数
在函数中,我们可以传递不同的数据类型(数字、字符串、布尔值、列表、元组、字典或集合)作为参数
- 单参数:如果我们的函数接受一个参数,我们应该用一个参数调用我们的函数
# 语法
# 声明一个函数
def function_name ( parameter ):
代码
代码
# 调用函数
print ( function_name ( argument ))
例子:
def greetings ( name ):
message = name + ', 欢迎来到 Python for Everyone!'
返回 消息
打印(问候('Asabeneh'))
def add_ten ( num ):
十 = 10
返回 num + 十
打印( add_ten ( 90 ))
def square_number ( x ):
return x * x
print ( square_number ( 2 ) )
def area_of_circle ( r ):
PI = 3.14
area = PI * r ** 2
return area
print ( area_of_circle ( 10 ) )
def sum_of_numbers ( n ):
total = 0
for i in range ( n + 1 ):
total += i
print ( total )
print ( sum_of_numbers ( 10 )) # 55
print ( sum_of_numbers ( 100 )) # 5050
- 两个参数:一个函数可能有也可能没有一个或多个参数。一个函数也可以有两个或多个参数。如果我们的函数接受参数,我们应该使用参数调用它。让我们检查一个带有两个参数的函数:
# 语法
# 声明一个函数
def function_name ( para1 , para2 ):
代码
代码
# 调用函数
print ( function_name ( arg1 , arg2 ))
例子:
def generate_full_name ( first_name , last_name ):
space = ' '
full_name = first_name + space + last_name
return full_name
print ( 'Full Name: ' , generate_full_name ( 'Asabeneh' , 'Yetayeh' ))
def sum_two_numbers ( num_one , num_two ):
sum = num_one + num_two
return sum
print ( '两个数字的和:' , sum_two_numbers ( 1 , 9 ))
高清 calculate_age(CURRENT_YEAR,birth_year):
年龄 = CURRENT_YEAR - birth_year
回报 年龄;
打印('年龄:',计算年龄(2021年,1819年))
DEF weight_of_object(质量,重心):
重量 = STR(质量 * 重力)+ “N” #的值必须改变到一个字符串第一
返回 重量
打印(“的物体的重量以牛顿:”,weight_of_object(100,9.81 ))
使用键和值传递参数
如果我们使用键和值传递参数,则参数的顺序无关紧要。
# 语法
# 声明一个函数
def function_name ( para1 , para2 ):
代码
代码
# 调用函数
print ( function_name ( para1 = 'John' , para2 = 'Doe' )) # 这里参数的顺序无关紧要
例子:
def print_fullname ( firstname , lastname ):
space = ' '
full_name = firstname + space + lastname
print ( full_name )
print ( print_fullname ( firstname = 'Asabeneh' , lastname = 'Yetayeh' ))
def add_two_numbers ( num1 , num2 ):
total = num1 + num2
print ( total )
print ( add_two_numbers ( num2 = 3 , num1 = 2 )) # 顺序无所谓
返回值的函数 - 第 2 部分
如果我们不使用函数返回值,那么我们的函数默认返回None。要使用函数返回值,我们使用关键字return后跟我们要返回的变量。我们可以从函数返回任何类型的数据类型。
- 返回字符串:
示例:
def print_name ( firstname ):
return firstname
print_name ( 'Asabeneh' ) # Asabeneh
def print_full_name ( firstname , lastname ):
space = ' '
full_name = firstname + space + lastname
return full_name
print_full_name ( firstname = 'Asabeneh' , lastname = 'Yetayeh' )
- 返回一个数字:
例子:
def add_two_numbers ( num1 , num2 ):
total = num1 + num2
return total
print ( add_two_numbers ( 2 , 3 ))
高清 calculate_age(CURRENT_YEAR,birth_year):
年龄 = CURRENT_YEAR - birth_year
回报 年龄;
打印('年龄:',计算年龄(2019年,1819年))
- 返回一个布尔值:
示例:
def is_even ( n ):
if n % 2 == 0 :
print ( 'even' )
return True # return 停止函数的进一步执行,类似于 break
return False
print ( is_even ( 10 )) # True
print ( is_even ( 7 ) )) # 错误
- 返回列表:
示例:
DEF find_even_numbers(Ñ):
找齐 = []
为 我 在 范围(Ñ + 1):
如果 我 % 2 == 0:
找齐。追加(我)
返回 找齐
打印(find_even_numbers(10))
带默认参数的函数
有时我们在调用函数时将默认值传递给参数。如果我们在调用函数时不传递参数,将使用它们的默认值。
# 语法
# 声明一个函数
def function_name ( param = value ):
代码
代码
# 调用函数
function_name ()
function_name ( arg )
例子:
def greetings ( name = 'Peter' ):
message = name + ',欢迎大家使用 Python!
返回 消息
打印(问候())
打印(问候('Asabeneh'))
def generate_full_name ( first_name = 'Asabeneh' , last_name = 'Yetayeh' ):
space = ' '
full_name = first_name + space + last_name
return full_name
打印(生成全名())
打印(生成全名('大卫','史密斯'))
DEF calculate_age(birth_year,CURRENT_YEAR = 2021):
年龄 = CURRENT_YEAR - birth_year
返回 年龄;
打印('年龄:',计算年龄(1821))
DEF weight_of_object(质量,重心 = 9.81):
重量 = STR(质量 * 重力)+ “N” #的值必须改变到字符串第一
返回 重量
打印(“牛顿的物体的重量:”,weight_of_object(100) ) # 9.81 - 地球表面的平均重力
打印( '以牛顿为单位的物体重量:' , weight_of_object ( 100 , 1.62 ))# 月球表面的重力
任意数量的参数
如果我们不知道传递给函数的参数数量,我们可以通过在参数名称前添加 * 来创建一个可以接受任意数量参数的函数。
# 语法
# 声明一个函数
def function_name ( * args ):
代码
代码
# 调用函数
function_name ( param1 , param2 , param3 ,..)
例子:
def sum_all_nums ( * nums ):
total = 0
for num in nums :
total += num # 同total = total + num
return total
print ( sum_all_nums ( 2 , 3 , 5 )) # 10
函数中的默认参数和任意数量的参数
def generate_groups ( team , * args ):
print ( team )
for i in args :
print ( i )
print ( generate_groups ( 'Team-1' , 'Asabeneh' , 'Brook' , 'David' , 'Eyob' ))
函数作为另一个函数的参数
#您可以将函数作为参数传递
def square_number ( n ):
return n * n
def do_something ( f , x ):
return f ( x )
print ( do_something ( square_number , 3 )) # 27
到目前为止,您取得了很多成就。继续!您刚刚完成了第 11 天的挑战,距离通往伟大之路还有 11 步。
第 12 天 - 模块
什么是模块
模块是包含一组代码或一组可以包含在应用程序中的功能的文件。模块可以是包含单个变量、函数或大型代码库的文件。
创建模块
为了创建一个模块,我们在 python 脚本中编写代码并将其保存为 .py 文件。在项目文件夹中创建一个名为 mymodule.py 的文件。让我们在这个文件中写一些代码。
# mymodule.py 文件
def generate_full_name ( firstname , lastname ):
return firstname + ' ' + lastname
在您的项目目录中创建 main.py 文件并导入 mymodule.py 文件。
导入模块
要导入文件,我们仅使用import关键字和文件名。
# main.py 文件
import mymodule
print ( mymodule . generate_full_name ( 'Asabeneh' , 'Yetayeh' )) # Asabeneh Yetayeh
从模块导入函数
我们可以在一个文件中包含多个函数,并且可以以不同的方式导入所有函数。
# main.py 文件
from mymodule import generate_full_name , sum_two_nums , person ,重力
打印( generate_full_name ( 'Asabneh' , 'Yetayeh' ))
print ( sum_two_nums ( 1 , 9 ))
mass = 100 ;
重量 = 质量 * 重力
打印(重量)
打印(人[ '名字' ])
从模块导入函数并重命名
在导入过程中,我们可以重命名模块的名称。
#main.py文件
从 MyModule的 进口 generate_full_name 如 全名,sum_two_nums 作为 总,人 作为 p,重力 为 克
打印(全名('Asabneh' ,'Yetayeh' ))
打印(总共(1,9))
的质量 = 100 ;
重量 = 质量 * g
打印(重量)
打印(p )
打印( p [ 'firstname' ])
导入内置模块
像其他编程语言一样,我们也可以通过使用关键字import 导入文件/函数来导入模块。让我们导入我们将大部分时间使用的公共模块。一些常见的内置模块:math、datetime、os、sys、random、statistics、collections、json、re
操作系统模块
使用 python os模块可以自动执行许多操作系统任务。Python 中的 OS 模块提供创建、更改当前工作目录、删除目录(文件夹)、获取其内容、更改和识别当前目录的功能。
# 导入模块
import os
# 创建目录
os . mkdir ( 'directory_name' )
# 改变当前目录
os . chdir ( 'path' )
# 获取当前工作目录
os . getcwd ()
# 删除目录
os . 目录()
系统模块
sys 模块提供用于操作 Python 运行时环境的不同部分的函数和变量。函数 sys.argv 返回传递给 Python 脚本的命令行参数列表。此列表中索引 0 处的项目始终是脚本的名称,索引 1 处是从命令行传递的参数。
script.py 文件示例:
import sys
#print(sys.argv[0], argv[1],sys.argv[2]) # 这行会打印出: filename argument1 argument2
print ( 'Welcome {}. Enjoy {} Challenge!' . format ( sys . argv [ 1 ], sys . argv [ 2 ]))
现在要检查这个脚本是如何工作的,我在命令行中写了:
python script.py Asabeneh 30DaysOfPython
结果:
欢迎,享受 30DayOfPython 挑战!
一些有用的 sys 命令:
# 退出 sys
sys。exit ()
# 要知道最大的整数变量需要
sys。maxsize
# 要知道环境路径
sys . path
# 要知道您使用的 python 版本
sys。版本
统计模块
统计模块提供数值数据的数理统计功能。此模块中定义的流行统计函数:mean、median、mode、stdev等。
from statistics import * # 导入所有统计模块
age = [ 20 , 20 , 4 , 24 , 25 , 22 , 26 , 20 , 23 , 22 , 26 ]
print ( mean ( ages )) # ~22.9
print ( median ( ages) )) # 23
打印(模式(年龄)) # 20
打印(stdev(年龄)) #~2.3
数学模块
包含许多数学运算和常数的模块。
进口 数学
打印(数学。PI) #3.141592653589793,PI常数
打印(数学。SQRT(2)) #1.4142135623730951,平方根
打印(数学。POW(2,3)) #8.0,指数函数
打印(数学。地板(9.81)) #9,四舍五入到最低
打印(数学。小区(9.81)) # 10,四舍五入到最高
打印( math . log10 ( 100 )) # 2,以10为底的对数
现在,我们已经导入了math模块,其中包含许多可以帮助我们进行数学计算的功能。要检查模块具有哪些功能,我们可以使用help(math)或dir(math)。这将显示模块中的可用功能。如果我们只想从模块中导入一个特定的函数,我们按如下方式导入它:
从 数学 导入 pi
打印( pi )
也可以一次导入多个函数
从 数学 进口 PI,SQRT,POW,地板,小区,日志10
打印(PI) #3.141592653589793
打印(SQRT(2)) #1.4142135623730951
打印(POW(2,3)) #8.0
打印(地板(9.81)) #9
打印(上限( 9.81 )) #10
打印(数学。LOG10(100)) #2
但是如果我们想导入 math 模块中的所有函数,我们可以使用 * 。
from math import *
print ( pi ) # 3.141592653589793, pi 常数
打印( sqrt ( 2 )) # 1.4142135623730951, 平方根
打印( pow ( 2 , 3 )) # 8.0, 指数
打印( floor ( 9.81 ) 四舍五入)最低的
打印( ceil ( 9.81 )) # 10,四舍五入到最高的
打印( math .log10 ( 100 )) # 2
当我们导入时,我们还可以重命名函数的名称。
from math import pi as PI
print ( PI ) # 3.141592653589793
字符串模块
字符串模块是一个用于多种用途的有用模块。下面的示例显示了 string 模块的一些用法。
进口 字符串
打印(串。ascii_letters)#abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
打印(串。位数) #0123456789
打印(串。标点符号) #“#$%&'()* +, - 。/?:; <=> @ [\\] ^_`{|}~
随机模块
到目前为止,您已经熟悉了导入模块。让我们再做一个导入来熟悉它。让我们导入random模块,它给我们一个 0 到 0.9999 之间的随机数… random模块有很多功能,但在本节中我们将只使用random和randint。
from random import random , randint
print ( random ()) # 不带任何参数;它返回一个介于 0 和 0.9999 之间的值
print ( randint ( 5 , 20 )) # 它返回一个介于 [5, 20] 之间的随机整数
你要走得很远。继续!您刚刚完成了第 12 天的挑战,距离通往伟大之路还有 12 步。
第 13 天 - 列表理解
Python 中的列表推导式是一种从序列创建列表的紧凑方式。这是创建新列表的一种快捷方式。列表理解比使用for循环处理列表快得多。
# 语法
[ i for i in iterable if expression ]
示例:1
例如,如果您想将字符串更改为字符列表。您可以使用几种方法。让我们看看其中的一些:
# 一种方式
language = 'Python'
lst = list ( language ) # 将字符串改为列表
print ( type ( lst )) # list
print ( lst ) # ['P', 'y', 't', 'h' , '在']
# 第二种方式:list comprehension
lst = [ i for i in language ]
print ( type ( lst )) # list
print ( lst ) # ['P', 'y', 't', 'h', 'o', 'n']
示例:2
例如,如果你想生成一个数字列表
# 生成数字
numbers = [ i for i in range ( 11 )] # 生成从 0 到 10 的
数字print ( numbers ) # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ]
# 可以在迭代期间进行数学运算
squares = [ i * i for i in range ( 11 )]
print ( squares ) # [0, 1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
# 也可以创建一个元组列表
numbers = [( i , i * i ) for i in range ( 11 )]
print ( numbers ) # [(0, 0), (1, 1), (2, 4), (3, 9), (4, 16), (5, 25)]
示例:2
列表推导式可以与 if 表达式结合使用
# 生成偶数
even_numbers = [ i for i in range ( 21 ) if i % 2 == 0 ] # 生成 0 到 21 范围内的偶数列表
print ( even_numbers ) # [0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20]
# 生成奇数
odd_numbers = [ i for i in range ( 21 ) if i % 2 != 0 ] # 生成0到21范围内的奇数
print ( odd_numbers ) 自学python 经验学习心得分享