paddlepaddle学习项目——python入门

590 阅读8分钟

Python入门

目录

  • Hello World!
  • 字符串操作
  • 简单数学计算
  • if elif else
  • 循环
  • 小测试

为什么学Python

简单方便代码少. 不用太关注类型, 声明等琐事. 使用灵活, 第三方支持包也多.

所有的深度学习框架一般都有一个Python版的接口.

为什么使用IPython/Jupyter

IPython Notebook号称 “编码器的实验室笔记本” - 允许用户在单个基于浏览器的页面中交叉显示/执行数据,代码和说明文本,而不是在单独的文件中

基础类型

python中的主要基本数据类型是数字(整数和浮点数),布尔值和字符串

Hello World!

# This is a one line comment#描述
print('Hello World!')
Hello World!
# Strings can be enclosed by ',", or 
print("Hello World!")
# \ is used as a escape character#转义字符. 
# There are many special escape sequences#有许多特殊的转义序列
# Notable are: \t (tab)#tab键
#             \n (new line)换行
print("The \n makes a new line")
The 
 makes a new line
print("The \t is a tab")
The 	 is a tab
print('I\'m going to the movies')
I'm going to the movies
firstVariable="hello,world"
print(firstVariable)
hello,world

字符串操作

字符串是python的特殊类型。作为对象,在类中,您可以使用.methodName()表示法调用字符串对象上的方法。字符串类在python中默认可用,因此您不需要import语句即可将对象接口用于字符串。

# go over ? mark after if you are not sure what method does. 
print(firstVariable.lower())
print(firstVariable.upper())
print(firstVariable.title())
hello,world
HELLO,WORLD
Hello,World
# To look up what each method does
firstVariable.lower?
#函数名
#文档描述
#内部函数或方法
#help(firstVariable.lower)
# Can also use help
#help(firstVariable.lower)
#help()
firstVariable.split(',')
['hello', 'world']
a=firstVariable.split(',')
a
['hello', 'world']
' '.join(a)#"内是空格" 表示 拼接时用
'hello world'
help(' '.join)
Help on built-in function join:

join(iterable, /) method of builtins.str instance
    Concatenate any number of strings.
    
    The string whose method is called is inserted in between each given string.
    The result is returned as a new string.
    
    Example: '.'.join(['ab', 'pq', 'rs']) -> 'ab.pq.rs'
print("0" + "1")
01
"0" * 3
'000'
# You can add strings together. 
"Fizz" + "Buzz"
'FizzBuzz'

基础数学

有四种不同的数字类型:普通整数,长整数,浮点数和复数。另外,布尔值是普通整数的子类型。

# Addition, add two int together
1+1
2
# if one of the operands is a float, the result is a float.
130-2.0
128.0
130-2
128
# integer division
130/2    
65.0
130.0/2
65.0
# Multiplication
2*3
6
# Exponentiation ** 
# This operator raises the number to its left to the power of the number to its right 
2**3
8
# Modulo
# Returns the remainder of the division of the number to the left by the 
# number on its right. 
9%3#and
0

if 语句

比较操作符 功能
< 小于
<= 小于或等于
> 大于
>= 大于或等于
== 等于
!= 不等于

检查某些东西是否为True,如果是,则执行此操作。如果它不是True(False),则不执行

# Notice you have to indent after you start a if statement. indet缩进 statement 语句 
num = 3
if num == 3: 
    print(num)
3
# Nothing is outputted because num > 10 is FALSE
num = 3
if num > 10:
    print(num)
num = 3
if num % 3 == 0:
    print("Fizz")
Fizz
num = 10
if num % 5 == 0:
    print("Buzz")
Buzz
if True:
    print("This was True")
This was True
if False: 
    print("Nothing printed")
逻辑操作符 描述
and 如果两个操作数均为True,则condition变为True.
or 如果两个操作数中的任何一个为True,则condition变为True.
not 用于反转逻辑(不是False变为True,而不是True变为False
姓名|性别
--- | ---
马文翰 | 男
  File "<ipython-input-15-b9a42e501bf6>", line 2
    --- | ---
        ^
SyntaxError: invalid syntax
num = 4
num > 0 and num  < 15
True
# both the conditions are true, so the num will be printed out
if num > 0 and num  < 15:
    print(num)
4
# num > 0 is True, num > 15 is False
# Since the first condition is True, it is True
num = 4
num > 0 or num  > 15
True
 num > 0 or num  > 15
True
# or will only evaluate to False if both are False
if False or False:
    print('Nothing will print out')
num = 10
not num < 20 
False

else 语句

必须在if或elif语句之后。最多可以有一个其他声明。仅当上面的所有“if”和“elif”语句都为False时才会执行

num = 1
if num > 3 :
    print("Hi")
"""We will execute what is inside the else statement
because num is not greater than 3
"""
num = 1
if num > 3 :
    print("Hi")
else: 
    print("number is not greater than 3")
number is not greater than 3
"""We will execute what is inside the if statement because num > 4"""
num = 4
if num > 3 :
    print("Hi")
else: 
    print("number is not greater than 3")
Hi

Task(困难的)任务

  1. 将num分配给整数值。
  2. 如果整数是偶数,写一个if else组合将打印“你的整数是偶数”。否则,打印“你的整数是奇数”。

提示:任何可以精确地除以2的整数都是偶数(例如:2,4,6)。任何不能精确地除以2的整数都是奇数(例如:1,3,5)。使用模运算符(%),它将数字左边的余数除以右边的数字。

num = 3
if num % 2 == 0:
    print("Your integer is even")#even偶数
else: 
    print("Your integer is odd") #odd奇数
Your integer is odd

elif 语句

必须在if语句之后。 elif语句语句允许您检查True的多个表达式,并在其中一个条件求值为True时立即执行代码块。

与else类似,elif语句是可选的。但是,与其他情况不同,最多只能有一个语句,if后面可以有任意数量的elif语句。

num = 21
if num > 50:
    print('num is larger than 50')
elif num == 21:
    print('num = 21')
else:
    print('Catchall condition')
num = 21
num = 21 
if num > 50:
    pirnt("num is larger than 50")
elif num == 22:
    print("num == 21")
else:
    print("catchall condition")
catchall condition
my_num = 5
if my_num % 2 == 0:
    print("Your number is even")
elif my_num % 2 != 0:
    print("Your number is odd")
else: 
    print("Are you sure your number is an integer?")
Your number is odd
my_num = 3
if my_num % 2 == 0:
    print("your integer is even")
elif my_num % 2 != 0:
    print ("your integer is odd")
else :
    print ("Are you sure your number is an integer ?")
your integer is odd
# You can have mulitpled elif statements.# statements 声明/报告  mulitpled多重
# Remember only the first True statement has its block of code executed. 

dice_value = 3#点数
if dice_value == 1:
    print('You rolled a {}. Great job!'.format(dice_value))#format格式 roll摇
elif dice_value == 2:
    print('You rolled a {}. Great job!'.format(dice_value))
elif dice_value == 3:
    print('You rolled a {}. Great job!'.format(dice_value))
elif dice_value == 4:
    print('You rolled a {}. Great job!'.format(dice_value))
elif dice_value == 5:
    print('You rolled a {}. Great job!'.format(dice_value))
elif dice_value == 6:
    print('You rolled a {}. Great job!'.format(dice_value))
else:
    print('None of the conditions above (if elif) were evaluated as True')
You rolled a 3. Great job!
dice_value = 6#这里犯过一个优质的错误 把赋值"="写成了"==" 
if dice_value == 1:
    pirnt("you rolled a {}. Great job ! ".format(dice_value))
elif dice_value == 2:
    print("your rolled a {} . Great job!".format (dice_value) )
elif dice_value == 3:
    print("your rolled a {} . Great job!".format (dice_value) )
elif dice_value == 4:
    print("your rolled a {} . Great job!".format (dice_value) )
elif dice_value == 5:
    print("your rolled a {} . Great job!".format (dice_value) )
elif dice_value == 6:
    print("your rolled a {} . Great job!".format (dice_value) )

your rolled a 6 . Great job!

Task

  1. 将num分配给整数值。
  2. 编写一系列if,elif,else语句,打印您指定的num。但是对三的倍数要打印“Fizz”而不是数字, 五的倍数要打印“Buzz”。对于三和五共同的倍数则打印“FizzBuzz”
# Solution 1
num = 15
if num % 3 == 0  and  num % 5 == 0 :
    print("FizzBuzz")
elif num % 3 == 0 :
    print("Fizz")
elif num % 5 == 0:
    print("Buzz")
FizzBuzz
if num % 3 == 0 and num % 5 == 0:
    print('FizzBuzz')
elif num % 3 == 0:
    print('Fizz')
elif num % 5 == 0:
    print('Buzz')
else:
    print(str(num))
FizzBuzz
# Solution 2
num = 15
"""Notice how difficult this solution is relative to Solution 1"""

string = ""
if num % 3 == 0:
    string = string + "Fizz"
if num % 5 == 0:
    string = string + "Buzz"
if num % 5 != 0 and num % 3 != 0:
    string = string + str(num)
print(string)
FizzBuzz

列表(list)

列表后面要加上方括号 [ ]

z = [3, 7,
index 0 1
# Defining a list
z = [3, 7, 4, 2]

访问列表里面的值

# The first element of a list is at index 0
z[0]
3
z[2]
4
# Access Last Element of List #Access 访问
z[-2]
4

切分列表

# first index is inclusive (before the :) and last (after the :) is not. 
# not including index 2
z[0:2]
[3, 7]
# everything up to index 3
z[:3]
[3, 7, 4]
# index 1 to end of list
z[1:]
[7, 4, 2]

取列表的最大值, 最小值, 长度, 以及总和

print(min(z), max(z), len(z), sum(z))
2 7 4 16

对列表中对象出现次数进行统计

random_list = [4, 1, 5, 4, 10, 4]
random_list.count(4)#count计数
3

返回列表第一个指针

random_list = [4, 1, 5, 4,
index= 0 1 2 3
random_list.index(4)
0
# you can specify(指定) where you start your search
random_list.index(4, 4)#(需要查找的数,从哪个序号开始)
5
# random_list.index(value, [start, stop])
random_list.index(4, 4, 6)
5

再次注意保留开始不保留结尾

对列表进行排序

x = [3, 7, 2, 11, 8, 10, 4]
y = ['Steve', 'Rachel', 'Michael', 'Adam', 'Monica', 'Jessica', 'Lester']
# Sorting and Altering original list
# low to high
x.sort()
print(x)
[2, 3, 4, 7, 8, 10, 11]
# Sorting and Altering original list
# high to low
x.sort(reverse = True)
print(x)
[11, 10, 8, 7, 4, 3, 2]
# Sorting and Altering original list 改变原始列表
# A-Z
y.sort()
print(y)
['Adam', 'Jessica', 'Lester', 'Michael', 'Monica', 'Rachel', 'Steve']
# Sorting and Altering original list
# Z-A
y.sort(reverse = True)# reverse/rɪˈvɜːs/颠倒
print(y)
['Steve', 'Rachel', 'Monica', 'Michael', 'Lester', 'Jessica', 'Adam']
# sorting list WITHOUT altering original list 
new_list = sorted(y)
new_list
['Adam', 'Jessica', 'Lester', 'Michael', 'Monica', 'Rachel', 'Steve']
# notice y is unchanged
y
['Steve', 'Rachel', 'Michael', 'Adam', 'Monica', 'Jessica', 'Lester']

在列表结尾添加一个对象

x
[11, 10, 8, 7, 4, 3, 2]
x.append(3)
print(x)
[3, 7, 2, 11, 8, 10, 4, 3]

删除列表中一个对象

x.remove(10)
print(x)
[3, 7, 2, 11, 8, 4, 3]

删除列表中指定位置的对象

# List before you remove an item
print(x)
[3, 7, 2, 11, 8, 4, 3]
# Remove item at the index item(对象)
# this function will also return the item you removed from the list
# Default is the last index
x.pop(3)
11
print(x)

[3, 7, 2, 8, 4, 3]

合并列表

通过在末尾续加的方式来延长列表

x.extend([4, 5])
x
[3, 7, 2, 8, 4, 4, [4, 5], 4, 3, 4, 5]
# lists can be diverse, each element in the list can be of a different type.
# lists are really list of pointers, and these pointers can 
# point to anything.

# Concatenating Lists
print('x+y=',x+y)
x+y= [11, 8, 7, 3, 2, 3, 4, 5, 'Steve', 'Rachel', 'Monica', 'Michael', 'Lester', 'Jessica', 'Adam']

在列表指定位置前插入对象

x
[3, 7, 2, 11, 8, 10, 4]
x.insert(4, 4)#插入一个数
x
[3, 7, 2, 11, 4, 8, 10, 4]
x.insert(4,[4,5])#插入一个列表
x
[3, 7, 2, 11, [4, 5], [4, 5], 4, 8, 10, 4]