技术心得记录:分分钟学会一门语言之Python3篇【转载】

简介: 技术心得记录:分分钟学会一门语言之Python3篇【转载】

转自:


Python was created by Guido van Rossum in the early 90s. It is now one of the most popular languages in existence. I fell in love with Python for its syntactic clarity. It’s basically executable pseudocode.


Feedback would be highly appreciated! You can reach me at @louiedinh or louiedinh 【at】 【google’s email service】


Note: This article applies to Python 3 specifically. Check out here if you want to learn the old Python 2.7


# Single line comments start with a number symbol.


""" Multiline strings can be written


using three "s, and are often used


as documentation.


"""


####################################################


## 1. Primitive Datatypes and Operators


####################################################


# You have numbers


3 # => 3


# Math is what you would expect


1 + 1 # => 2


8 - 1 # => 7


10 2 # => 20


35 / 5 # => 7.0


# Result of integer division truncated down both for positive and negative.


5 // 3 # => 1


5.0 // 3.0 # => 1.0 # works on floats too


-5 // 3 # => -2


-5.0 // 3.0 # => -2.0


# The result of division is always a float


10.0 / 3 # => 3.3333333333333335


# Modulo operation


7 % 3 # => 1


# Exponentiation (xy, x to the yth power)


23 # => 8


# Enforce precedence with parentheses


(1 + 3) 2 # =//代码效果参考:http://www.jhylw.com.cn/421720851.html

> 8

# Boolean values are primitives (Note: the capitalization)


True


False


# negate with not


not True # => False


not False # => True


# Boolean Operators


# Note "and" and "or" are case-sensitive


True and False # => False


False or True # => True


# Note using Bool operators with ints


# False is 0 and True is 1


# Don't mix up with bool(ints) and bitwise and/or (&,|)


0 and 2 # => 0


-5 or 0 # => -5


0 == False # => True


2 == True # => False


1 == True # => True


-5 != False != True #=> True


# Equality is ==


1 == 1 # => True


2 == 1 # => False


# Inequality is !=


1 != 1 # => False


2 != 1 # => True


# More comparisons


1 < 10 # => True


1 > 10 # => False


2 <= 2 # => True


2 >= 2 # => True


# Comparisons can be chained!


1 < 2 < 3 # => True


2 < 3 < 2 # => False


# (is vs. ==) is checks //代码效果参考:http://www.jhylw.com.cn/371734561.html

if two variables refer to the same object, but == checks

# if the objects pointed to have the same values.


a = 【1, 2, 3, 4】 # Point a at a new list, 【1, 2, 3, 4】


b = a # Point b at what a is pointing to


b is a # => True, a and b refer to the same object


b == a # => True, a's and b's objects are equal


b = 【1, 2, 3, 4】 # Point b at a new list, 【1, 2, 3, 4】


b is a # => False, a and b do not refer to the same object


b == a # => True, a's and b's objects are equal


# Strings are created with " or '


"This is a string."


'This is also a string.'


# Strings can be added too! But try not to do this.


"Hello " + "world!" # => "Hello world!"


# String literals (but not variables) can be concatenated without using '+'


"Hello " "world!" # => "Hello world!"


# A string can be treated like a list of characters


"This is a string"【0】 # => 'T'


# You can find the length of a string


len("This is a string") # => 16


# .format can be used to format strings, like this:


"{} can be {}".format("Strings", "interpolated") # => "Strings can be interpolated"


# You can repeat the formatting arguments to save some typing.


"{0} be nimble, {0} be quick, {0} jump over the {1}".format("Jack", "candle stick")


# => "Jack be nimble, Jack be quick, Jack jump over the candle stick"


# You can use keywords if you don't want to count.


"{name} wants to eat {food}".format(name="Bob", food="lasagna") # => "Bob wants to eat lasagna"


# If your Python 3 code also needs to run on Python 2.5 and below, you can also


# still use the old style of formatting:


"%s can be %s the %s way" % ("Strings", "interpolated", "old") # => "Strings can be interpolated the old way"


# None is an object


None # => None


# Don't use the equality "==" symbol to compare objects to None


# Use "is" instead. This checks for equality of object identity.


"etc" is None # => False


None is None # => True


# None, 0, and empty strings/lists/dicts/tuples all evaluate to False.


# All other values are True


bool(0) # => False


bool("") # => False


bool(【】) # => False


bool({}) # => False


bool(()) # => False


####################################################


## 2. Variables and Collections


####################################################


# Python has a print function


print("I'm Python. Nice to meet you!") # => I'm Python. Nice to meet you!


# By default the print function also prints out a newline at the end.


# Use the optional argument end to change the end string.


print("Hello, World", end="!") # => Hello, World!


# Simple way to get input data from console


input_string_var = input("Enter some data: ") # Returns the data as a string


# Note: In earlier versions of Python, input() method was named as raw_input()


# There are no declarations, only assignments.


# Convention is to use lower_case_with_underscores


some_var = 5


some_var # => 5


# Accessing a previously unassigned variable is an exception.


# See Control Flow to learn more about exception handling.


some_unknown_var # Raises a NameError


# if can be used as an expression


# Equivalent of C's '?:' ternary operator


"yahoo!" if 3 > 2 else 2 # => "yahoo!"


# Lists store sequences


li = 【】


# You can start with a prefilled list


other_li = 【4, 5, 6】


# Add stuff to the end of a list with append


li.append(1) # li is now 【1】


li.append(2) # li is now 【1, 2】


li.append(4) # li is now 【1, 2, 4】


li.append(3) # li is now 【1, 2, 4, 3】


# Remove from the end with pop


li.pop() # => 3 and li is now 【1, 2, 4】


# Let's put it back


li.append(3) # li is now 【1, 2, 4, 3】 again.


# Access a list like you would any array


li【0】 # => 1


# Look at the last element


li【-1】 # => 3


# Looking out of bounds is an IndexError


li【4】 # Raises an IndexError


# You can look at ranges with slice syntax.


# The start index is included, the end index is not


# (It's a closed/open range for you mathy types.)


li【1:3】 # => 【2, 4】


# Omit the beginning and return the list


li【2:】 # => 【4, 3】


# Omit the end and return the list


li【:3】 # => 【1, 2, 4】


# Select every second entry


li【::2】 # =>【1, 4】


# Return a reversed copy of the list


li【::-1】 # => 【3, 4, 2, 1】


# Use any combination of these to make advanced slices


# li【start:end:step】


# Make a one layer deep copy using slices


li2 = li【:】 # => li2 = 【1, 2, 4, 3】 but (li2 is li) will result in false.


# Remove arbitrary elements from a list with "del"


del li【2】 # li is now 【1, 2, 3】


# Remove first occurrence of a value


li.remove(2) # li is now 【1, 3】


li.remove(2) # Raises a ValueError as 2 is not in the list


# Insert an element at a specific index


li.insert(1, 2) # li is now 【1, 2, 3】 again


# Get the index of the first item found matching the argument


li.index(2) # => 1


li.index(4) # Raises a ValueError as 4 is not in the list


# You can add lists


# Note: values for li and for other_li are not modified.


li + other_li # => 【1, 2, 3, 4, 5, 6】


# Concatenate lists with "extend()"


li.extend(other_li) # Now li is 【1, 2, 3, 4, 5, 6】


# Check for existence in a list with "in"


1 in li # => True


# Examine the length with "len()"


len(li) # => 6


# Tuples are like lists but are immutable.


tup = (1, 2, 3)


tup【0】 # => 1


tup【0】 = 3 # Raises a TypeError


# Note that a tuple of length one has to have a comma after the last element but


# tuples of other lengths, even zero, do not.


type((1)) # =>


type((1,)) # =>


type(()) # =>


# You can do most of the list operations on tuples too


len(tup) # => 3


tup + (4, 5, 6) # => (1, 2, 3, 4, 5, 6)


tup【:2】 # => (1, 2)


2 in tup # => True


# You can unpack tuples (or lists) into variables


a, b, c = (1, 2, 3) # a is now 1, b is now 2 and c is now 3


# You can also do extended unpacking


a, *b, c = (1, 2, 3, 4) # a is now 1, b is now 【2, 3】 and c is now 4


# Tuples are created by default if you leave out the parentheses


d, e, f = 4, 5, 6


# Now look how easy it is to swap two values


e, d = d, e # d is now 5 and e is now 4


# Dictionaries store mappings from keys to values


empty_dict = {}


# Here is a prefilled dictionary


filled_dict = {"one": 1, "two": 2, "three": 3}


# Note

相关文章
|
2月前
|
机器学习/深度学习 算法 数据挖掘
6种有效的时间序列数据特征工程技术(使用Python)
在本文中,我们将探讨使用日期时间列提取有用信息的各种特征工程技术。
101 0
|
6天前
|
机器学习/深度学习 算法 数据可视化
8种数值变量的特征工程技术:利用Sklearn、Numpy和Python将数值转化为预测模型的有效特征
特征工程是机器学习流程中的关键步骤,通过将原始数据转换为更具意义的特征,增强模型对数据关系的理解能力。本文重点介绍处理数值变量的高级特征工程技术,包括归一化、多项式特征、FunctionTransformer、KBinsDiscretizer、对数变换、PowerTransformer、QuantileTransformer和PCA,旨在提升模型性能。这些技术能够揭示数据中的潜在模式、优化变量表示,并应对数据分布和内在特性带来的挑战,从而提高模型的稳健性和泛化能力。每种技术都有其独特优势,适用于不同类型的数据和问题。通过实验和验证选择最适合的变换方法至关重要。
16 5
8种数值变量的特征工程技术:利用Sklearn、Numpy和Python将数值转化为预测模型的有效特征
|
5天前
|
算法 数据挖掘 Python
Python中的拟合技术:揭示数据背后的模式
Python中的拟合技术:揭示数据背后的模式
14 0
Python中的拟合技术:揭示数据背后的模式
|
6天前
|
前端开发 JavaScript 安全
深入理解Python Web开发中的前后端分离与WebSocket实时通信技术
在现代Web开发中,前后端分离已成为主流架构,通过解耦前端(用户界面)与后端(服务逻辑),提升了开发效率和团队协作。前端使用Vue.js、React等框架与后端通过HTTP/HTTPS通信,而WebSocket则实现了低延迟的全双工实时通信。本文结合Python框架如Flask和Django,探讨了前后端分离与WebSocket的最佳实践,包括明确接口规范、安全性考虑、性能优化及错误处理等方面,助力构建高效、实时且安全的Web应用。
19 2
|
13天前
|
数据可视化 Python
Python编程中的数据可视化技术
【9月更文挑战第19天】在数据驱动的时代,将复杂的数据集转化为直观易懂的视觉表达至关重要。本文将深入探索Python中的数据可视化库,如Matplotlib和Seaborn,并指导读者如何运用这些工具来揭示数据背后的模式和趋势。文章不仅会介绍基础图表的绘制方法,还将讨论高级技巧以提升图表的信息丰富度和吸引力。
|
9天前
|
前端开发 API Python
WebSocket技术详解:如何在Python Web应用中实现无缝实时通信
在Web开发的广阔领域中,实时通信已成为许多应用的核心需求。传统的HTTP请求-响应模型在实时性方面存在明显不足,而WebSocket作为一种在单个长连接上进行全双工通信的协议,为Web应用的实时通信提供了强有力的支持。本文将深入探讨WebSocket技术,并通过一个Python Web应用的案例分析,展示如何在Python中利用WebSocket实现无缝实时通信。
16 2
|
11天前
|
SQL 缓存 数据库
构建高效Web应用:掌握Python中的ORM映射技术
在Web开发中,数据库操作至关重要,但直接编写SQL语句会增加代码复杂度并降低效率。对象关系映射(ORM)技术通过将对象模型映射为数据库表,使开发者能以面向对象的方式处理数据,提升开发效率和代码可维护性。本文以Python和SQLAlchemy为例,介绍ORM的基本概念、安装方法及使用技巧,并展示其在提升Web应用性能方面的优势。通过ORM,开发者可以简化数据库操作,专注于业务逻辑实现,提高开发效率和代码质量。
35 1
|
22天前
|
存储 安全 算法
RSA在手,安全我有!Python加密解密技术,让你的数据密码坚不可摧
【9月更文挑战第11天】在数字化时代,信息安全至关重要。传统的加密方法已难以应对日益复杂的网络攻击。RSA加密算法凭借其强大的安全性和广泛的应用场景,成为保护敏感数据的首选。本文介绍RSA的基本原理及在Python中的实现方法,并探讨其优势与挑战。通过使用PyCryptodome库,我们展示了RSA加密解密的完整流程,帮助读者理解如何利用RSA为数据提供安全保障。
41 5
|
24天前
|
数据采集 机器学习/深度学习 搜索推荐
Python爬虫技术基础与应用场景详解
本文介绍了爬虫技术的基本概念、原理及应用场景,包括数据收集、价格监测、竞品分析和搜索引擎优化等。通过一个实战案例展示了如何使用Python爬取电商网站的商品信息。强调了在使用爬虫技术时需遵守法律法规和道德规范,确保数据抓取的合法性和合规性。
|
26天前
|
存储 安全 算法
显微镜下的安全战!Python加密解密技术,透视数字世界的每一个安全细节
【9月更文挑战第7天】在数字世界中,数据安全至关重要。Python加密解密技术如同显微镜下的精密工具,确保信息的私密性和完整性。以大型医疗机构为例,通过AES和RSA算法的结合,既能高效加密大量医疗数据,又能安全传输密钥,防止数据泄露。以下是使用Python的`pycryptodome`库实现AES加密和RSA密钥交换的简化示例。此方案不仅提高了数据安全性,还为数字世界的每个细节提供了坚实保障,引领我们迈向更安全的未来。
26 1
下一篇
无影云桌面