技术心得记录:分分钟学会一门语言之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

相关文章
|
1月前
|
数据采集 存储 数据挖掘
深入探索 Python 爬虫:高级技术与实战应用
本文介绍了Python爬虫的高级技术,涵盖并发处理、反爬虫策略(如验证码识别与模拟登录)及数据存储与处理方法。通过asyncio库实现异步爬虫,提升效率;利用tesseract和requests库应对反爬措施;借助SQLAlchemy和pandas进行数据存储与分析。实战部分展示了如何爬取电商网站的商品信息及新闻网站的文章内容。提醒读者在实际应用中需遵守法律法规。
177 66
|
1月前
|
SQL 数据采集 数据可视化
深入 Python 数据分析:高级技术与实战应用
本文系统地介绍了Python在高级数据分析中的应用,涵盖数据读取、预处理、探索及可视化等关键环节,并详细展示了聚类分析、PCA、时间序列分析等高级技术。通过实际案例,帮助读者掌握解决复杂问题的方法,提升数据分析技能。使用pandas、matplotlib、seaborn及sklearn等库,提供了丰富的代码示例,便于实践操作。
159 64
|
9天前
|
算法 Python
Python图论探索:从理论到实践,DFS与BFS遍历技巧让你秒变技术大牛
图论在数据结构与算法中占据重要地位,应用广泛。本文通过Python代码实现深度优先搜索(DFS)和广度优先搜索(BFS),帮助读者掌握图的遍历技巧。DFS沿路径深入搜索,BFS逐层向外扩展,两者各具优势。掌握这些技巧,为解决复杂问题打下坚实基础。
21 2
|
11天前
|
开发框架 开发者 Python
探索Python中的装饰器:技术感悟与实践
【10月更文挑战第31天】 在编程世界中,装饰器是Python中一种强大的工具,它允许我们在不修改函数代码的情况下增强函数的功能。本文将通过浅显易懂的方式,带你了解装饰器的概念、实现原理及其在实际开发中的应用。我们将一起探索如何利用装饰器简化代码、提高可读性和复用性,同时也会分享一些个人的技术感悟,帮助你更好地掌握这项技术。
27 2
|
15天前
|
数据采集 Web App开发 iOS开发
如何利用 Python 的爬虫技术获取淘宝天猫商品的价格信息?
本文介绍了使用 Python 爬虫技术获取淘宝天猫商品价格信息的两种方法。方法一使用 Selenium 模拟浏览器操作,通过定位页面元素获取价格;方法二使用 Requests 和正则表达式直接请求页面内容并提取价格。每种方法都有详细步骤和代码示例,但需注意反爬措施和法律法规。
|
16天前
|
数据采集 存储 Web App开发
利用Python 的爬虫技术淘宝天猫销量和库存
使用 Python 爬虫技术获取淘宝天猫商品销量和库存的步骤包括:1. 安装 Python 和相关库(如 selenium、pandas),下载浏览器驱动;2. 使用 selenium 登录淘宝或天猫;3. 访问商品页面,分析网页结构,提取销量和库存信息;4. 处理和存储数据。注意网页结构可能变化,需遵守法律法规。
|
17天前
|
数据库 开发者 Python
“Python异步编程革命:如何从编程新手蜕变为并发大师,掌握未来技术的制胜法宝”
【10月更文挑战第25天】介绍了Python异步编程的基础和高级技巧。文章从同步与异步编程的区别入手,逐步讲解了如何使用`asyncio`库和`async`/`await`关键字进行异步编程。通过对比传统多线程,展示了异步编程在I/O密集型任务中的优势,并提供了最佳实践建议。
16 1
|
2月前
|
机器学习/深度学习 算法 数据可视化
8种数值变量的特征工程技术:利用Sklearn、Numpy和Python将数值转化为预测模型的有效特征
特征工程是机器学习流程中的关键步骤,通过将原始数据转换为更具意义的特征,增强模型对数据关系的理解能力。本文重点介绍处理数值变量的高级特征工程技术,包括归一化、多项式特征、FunctionTransformer、KBinsDiscretizer、对数变换、PowerTransformer、QuantileTransformer和PCA,旨在提升模型性能。这些技术能够揭示数据中的潜在模式、优化变量表示,并应对数据分布和内在特性带来的挑战,从而提高模型的稳健性和泛化能力。每种技术都有其独特优势,适用于不同类型的数据和问题。通过实验和验证选择最适合的变换方法至关重要。
45 5
8种数值变量的特征工程技术:利用Sklearn、Numpy和Python将数值转化为预测模型的有效特征
|
30天前
|
人工智能 文字识别 Java
SpringCloud+Python 混合微服务,如何打造AI分布式业务应用的技术底层?
尼恩,一位拥有20年架构经验的老架构师,通过其深厚的架构功力,成功指导了一位9年经验的网易工程师转型为大模型架构师,薪资逆涨50%,年薪近80W。尼恩的指导不仅帮助这位工程师在一年内成为大模型架构师,还让他管理起了10人团队,产品成功应用于多家大中型企业。尼恩因此决定编写《LLM大模型学习圣经》系列,帮助更多人掌握大模型架构,实现职业跃迁。该系列包括《从0到1吃透Transformer技术底座》、《从0到1精通RAG架构》等,旨在系统化、体系化地讲解大模型技术,助力读者实现“offer直提”。此外,尼恩还分享了多个技术圣经,如《NIO圣经》、《Docker圣经》等,帮助读者深入理解核心技术。
SpringCloud+Python 混合微服务,如何打造AI分布式业务应用的技术底层?
|
2月前
|
算法 数据挖掘 Python
Python中的拟合技术:揭示数据背后的模式
Python中的拟合技术:揭示数据背后的模式
40 0
Python中的拟合技术:揭示数据背后的模式