實(shí)驗(yàn)一Python序列應(yīng)用
1.2import math? # 導(dǎo)入標(biāo)準(zhǔn)庫(kù)mathprint(3 +5)
print(math.sqrt(9))? # 求9的平方根print(3 *
(2 + 6))
print(2 /0)
def main():
print('Hello
world')? # 函數(shù)打印hello wordmain()
1.4
# 1.4.2python 變量x = 3
print(type(x))? # 打印變量類型x = 'Hello world'
print(type(x))
x = [
1, 2, 3]
print(type(x))
print(isinstance(3, int))? # 用內(nèi)置函數(shù)isinstance()來(lái)測(cè)試對(duì)象是否為指定類型print(isinstance('hello world', str))
?
# python變量運(yùn)算符x = 3
print(x ** 2)
x +=
6? # 修改變量值print(x)
x = [
1, 2, 3]? # 創(chuàng)建列表對(duì)象print(x)
x[
1] = 5? # 修改列表元素值print(x)
print(x[2])? # 輸出顯示列表指定元素
# 字符串元組是不可變序列x = (1, 2, 3)
print(x)
x[1]=5? #錯(cuò)誤,不能修改tuple
# 多個(gè)變量指向同一個(gè)值x = 3
print(id(x))
y = x
print(id(y))
x += 6? # 為一個(gè)變量修改值后不影響另一個(gè)變量print(id(x))
print(y)
print(id(y))
# python為不同的變量賦值相同值,這個(gè)值在內(nèi)存中只有一份,多個(gè)變量指向同一塊內(nèi)存地址x = 3
print(id(x))
y =
3
print(id(y))
y =
5
print(id(y))
print(id(x))
importkeyword? # 查看所有python關(guān)鍵字print(keyword.kwlist)
#
and=3
1.4.3 數(shù)字
# 數(shù)字可以任意大a = 9999999999999999
print(a * a)
print(a ** 3)
print(3 * (2 + 5) / 3.0)
print(math.sqrt(3 ** 2 + 4 ** 2))
# 復(fù)數(shù)a = 3 + 4j
b = 5 + 6j
c = a + b
print(c)
print(c.real)
print(c.imag)
print(a.conjugate())? # a的共軛復(fù)數(shù)print(a * b)
print(a / b)
1.4.4字符串# 字符串a = 'abc' + '123'
print(a)
a =
3.6674
print('%7.3f' % a)? # 格式化print("%d:%c" % (65, 65))? # 10進(jìn)制:ASCII碼print("""My name is %s, and my age is %d""" % ('Wangyuhang', 20))
?
1.4.5 運(yùn)算符與表達(dá)式# python 除法print(3 / 5)
print(3 // 5)
print(3.0 / 5)
print(3.0 // 5)
print(13 // 10)
print(-13 // 10)
# 計(jì)算余數(shù)print(3.1 % 2)
print(6.3 % 2.1)
print(6 % 2)
print(6.0 % 2)
print(6.0 % 2.0)
print(5.7 % 4.8)
# 乘法print(3 * 2)
print(2.0 * 3)
print((3 + 4j) * 2)
print((3 + 4j) * (3 - 4j))
print('1' * 5)
print("a" * 10)
print([1, 2, 3] * 3)
print((1, 2, 3) * 3)
print(3 * 'a')
# 表達(dá)式a = [1, 2, 3]
b = [
4, 5, 6]
c = a + b
print(c)
d =
list(map(str, c))? # map映射對(duì)每個(gè)c中元素加str
print(d)
print(list(map(math.sin,c)))
?
# 表達(dá)式a = [1, 2, 3]
b = [
4, 5, 6]
c = a + b
print(c)
d =
list(map(str, c))? # map映射對(duì)每個(gè)c中元素加str
print(d)
print(list(map(math.sin,c)))
print('Hello'+' '+'world')
print('welcome '*3)
print(('welcome,'*3).rstrip(',')+'!') #strip用于去除字符串的首尾字符,同理,lstrip用于去除左邊的字符,rstrip用于去除右邊的字符。# python 中逗號(hào)并不是運(yùn)算符,只是普通分隔符,因此沒(méi)有優(yōu)先級(jí)print('a'in 'b','a')
print('a'in ('b','a'))
x=
3.5
print(x)
print(3==3,5)
print(3+5,7)
?
# 矩陣運(yùn)算符@
import numpy? # numpy用于科學(xué)計(jì)算的python擴(kuò)展庫(kù)x = numpy.ones(3)? # ones()函數(shù)用于生成全1矩陣,參數(shù)表示矩陣大小m = numpy.eye(3) * 3? # eye()函數(shù)用于生成單位矩陣m[0, 2] = 5
m[2, 0] = 3
print(x @ m)
?
1.4.6常用內(nèi)置函數(shù)
# ord() and chr()
print(ord('A')) #ord用來(lái)返回單個(gè)字符的Unicode編碼或ASCII碼print(chr(65)) # chr用來(lái)返回指定ASCII碼或Unicode碼對(duì)應(yīng)的字符print(chr(ord('A')+1))
print(str(1)) #str用來(lái)將任意類型參數(shù)轉(zhuǎn)換為字符串print(str(1234))
print(str([1,2,3]))
print(str((1,2,3)))
print(str({1,2,3}))
import random
a=[random.randint(
1,100) for i in range(10)] # 用列表推導(dǎo)式生成包含十個(gè)1到100的隨機(jī)數(shù)列表print(a)
print(max(a),min(a),sum(a))
print(max(['aa','b'],key=len)) # key為比較規(guī)則a=[72,26,80,65,34,86,19,74,52,40]
print(sum(a)*1.0/len(a)) #Python2求平均值print(sum(a)/len(a))??? #Python3求平均值# dir()查看指定模塊中包含的所有成員或指定對(duì)象類型所支持的操作# help()返回指定模塊或函數(shù)的說(shuō)明文檔import math
print(dir(math))?????? #查看模塊中可用對(duì)象help(math.sqrt)
help(math.sin)
print(dir(3+4j))?? # 查看數(shù)字類型對(duì)象成員print(dir(''))
?
1.4.7對(duì)象的刪除
x=[1,2,3,4,5,6]
y=
3
z=y
print(y)
del y
print(y)
print(z)
del z
print(z)
del x[1]??? #刪除列表中指定元素print(x)???
del x?????? #刪除整個(gè)列表print(x)
x=(1,2,3)
del x [1]?? #del命令無(wú)法刪除元組或字符串中的指定元素,因?yàn)樗麄儗儆诓豢勺冃蛄?/i>
del x
print(x)
?
1.4.8基本輸入輸出
Python2和Python3對(duì)輸入函數(shù)解釋略有不同。
Python2中input函數(shù)返回的值類型由輸入時(shí)所使用的界定符決定raw_input函數(shù)返回類型一律為字符串。
而Python3中不存在raw_input函數(shù)且input函數(shù)只返回字符串,需要將其轉(zhuǎn)換為相應(yīng)類型再處理
以下為Python3代碼結(jié)果
它們的輸出也不同,Python2使用print語(yǔ)句輸出,而python3使用print()函數(shù)輸出。
Python2重定向
Python3重定向
count.txt中的結(jié)果
Python2在print語(yǔ)句后加逗號(hào)表示不換行
但在Python3要實(shí)現(xiàn)不換行要加end=’’
?
1.4.9 模塊的導(dǎo)入與使用
?
1.5 Python代碼編寫(xiě)規(guī)范
依靠代碼縮進(jìn)量來(lái)體現(xiàn)代碼之間的邏輯關(guān)系,同一級(jí)別的代碼塊的縮進(jìn)量必須相同
?
1.9 Python編程快速入門
例1-1 用戶輸入三位自然數(shù),計(jì)算并輸出其百位十位個(gè)位上的數(shù)字
# 例1-1 用戶輸入三位自然數(shù),計(jì)算并輸出其百位十位個(gè)位上的數(shù)字x = input("請(qǐng)輸入一個(gè)三位數(shù):")
x=
int(x)
a=x//
100
b=x//10%10
c=x%10
print(a,b,c)
例1-2 已知三角形兩邊長(zhǎng)及其夾角求第三邊長(zhǎng)
import math
x=
input('輸入兩邊長(zhǎng)和夾角(度):')
a,b,theta=
map(float,x.split())
c=math.sqrt(a**
2+b**2-2*a*b*math.cos(theta*math.pi/180))
print('c=:',c)
例1-3 任意輸入三個(gè)英文單詞,按字典順序輸出
s=input('x,y,z=')
l=
list
l=s.split()
l.sort()
print(l)
s=
input('x,y,z=')
x,y,z=s.split(
',')
x,y,z=
sorted([x,y,z])
print(x,y,z)
例4-1 Python程序框架生成器
import os
import sys
import datetime
head =
'#' + '-' * 20 + '\n' + \
'#Function description:\n' + \
'#' + '-' * 20 + '\n' + \
'#Author:Dong Fuguo\n' + \
'#QQ:306467355\n' + \
'#Email:dongfuguo2005@126.com\n' + \
'#' + '-' * 20 + '\n'
desFile = sys.argv[1]
if os.path.exists(desFile) or not desFile.endswith('.py'):
print('%s already exist or is not a Python code file.!' % desFile)
??? sys.exit()
fp =
open(desFile, 'w')
today =
str(datetime.date.today())
fp.write(
'#-*-coding:utf-8-*-\n')
fp.write(
'#Filename:' + desFile + '\n')
fp.write(head)
fp.write(
'#Date:' + today + '\n')
fp.write(
'#' + '-' * 20 + '\n')
fp.close()
用IDLE打開(kāi)newProgram.py