Python3 运行方法和编辑器

运行.py文件

运行环境:Mac
软件:IDLE

方法/步骤

直接使用IDLE

可以直接在IDLE shell中编写python代码,但是不建议

  • 使用 IDLE shell,利用菜单栏open -> 打开.py 文件
  • 打开.py文件,选中.py文件,直接点击F5 || 运用菜单栏 Run -> Run Module

使用Sublime Text

  • 使用 IDLE shell,利用菜单栏open -> 打开.py 文件
  • 打开.py文件,选中.py文件,直接点击F5 || 运用菜单栏 Run -> Run Module

你可以直接在Sublime Text 编写代码,直接选中.py文件,直接点击F5,可以不用关心打开的.py文件的内容

终端执行python脚本 (for Mac)

  • cd 到文件夹目录
  • 在文件首行添加#!/usr/bin/env python
  • 添加权限 chmod 777 filename.py
  • 执行脚本./filename.py

注意: input() 在终端输入字符串时需要用'adfjakd'或"adfad"格式

Mac 自带Python

在系统10.13.4 下,python版本为2.7.10

  • 在终端直接输入python,终端会直接输出Mac自带Python版本信息,同时进入python 编辑模式,>>>
    输入exit() 推出Python编辑模式
  • 在终端输入IDLE,打开 Python IDLE软件 Python shell编辑器

编辑器

PyCharm

# -*- coding: UTF-8 -*-
# Filename : test.py
# author by : sjw

#### output Hello World!
print('Hello World')

number sum

num1 = input('input first number:')
num2 = input('input second number:')

sum = float(num1) + float(num2)

print('num {0} add {1} = sum {2}'.format(num1, num2, sum))

print('sum of two numbers is %.1f' %(float(input(' first number:'))+float(input('second :'))))

get num sqrt

num = float(input('num sqrt number:'))
num_sqrt = num ** 0.5
print('%0.3f sqrt is %0.3f'%(num, num_sqrt))

import cmath
num = int(input('input number:'))
num_sqrt = cmath.sqrt(num)
print('{0} sqrt num:{1:0.3f}+{2:0.3f}j'.format(num, num_sqrt.real, num_sqrt.imag))

ax**2 + bx + c = 0

import cmath
a = float(input('a:'))
b = float(input('b:'))
c = float(input('c:'))

d = (b**2)-(4*a*c)
sol1 = (-b-cmath.sqrt(d))/(2*a)
sol2 = (-b+cmath.sqrt(d))/(2*a)

print('sol:{0} and {1}'.format(sol1,sol2))

triangle area

a = float(input('a:'))
b = float(input('b:'))
c = float(input('c:'))
s = (a+b+c)/2
area = (s*(s-a)*(s-b)*(s-c)) ** 0.5
print('triangle area:%.2f' %area)

random

import random
print(random.randint(0,9))

temperature

celsius = float(input('celsius:'))

fahrenheit = (celsius * 1.8) + 32
print('celsius:%0.1f to fahreneit:%0.1f'%(celsius, fahrenheit))

change a and b

x = input('x:')
y = input('y:')

temp = x
x  = y
y = temp
print('x:{0} y:{1}'.format(x, y))

x, y = y, x
print('x:{0} y:{1}'.format(x, y))

if elif else

num = float(input('number:'))
if num > 0:
    print("num is 整数")
elif num == 0:
    print('num is 0')
else :
    print('num is 负数') 

num = float(input('输入数字:'))
if num >= 0:
    if num > 0:
        print('num is 正数')
    else:
        print('num is 0')
else:
    print('num is 负数')

判断字符字符串还是数字

def is_number(s):
    try:
        float(s)
        return True
    except ValueError:
        pass

    try:
        import unicodedata
        unicodedata.numeric(s)
        return True
    except (TypeError, ValueError):
        pass
    return False

print(is_number('sdjf'))
print(is_number(-32.9))

判断奇数偶数

num = input('输入数字:')
if (num%2) == 0:        
    print('{0} 是偶数'.format(num))
else: 
    print('{0} 是奇数'.format(num))

判断闰年

year = int(input('输入一个年份:'))
if (year%4) == 0:
    if (year%100) == 0:
        if (year%400) == 0:
            print('{0}是闰年'.format(year))
        else:
            print('{0}不是闰年'.format(year))
    else:
        print("{0}是闰年".format(year))
else:
     print("{0} 不是闰年".format(year))

获取最大值函数

# 最简单的
print(max(1, 2))
print(max('a', 'b'))
 
# 也可以对列表和元组使用
print(max([1,2]))
print(max((1,2)))
 
# 更多实例
print("80, 100, 1000 最大值为: ", max(80, 100, 1000))
print("-20, 100, 400最大值为: ", max(-20, 100, 400))
print("-80, -20, -10最大值为: ", max(-80, -20, -10))
print("0, 100, -400最大值为:", max(0, 100, -400))

质数判断

# 用户输入数字
num = int(input("请输入一个数字: "))
 
# 质数大于 1
if num > 1:
   # 查看因子
   for i in range(2,num):
       if (num % i) == 0:
           print(num,"不是质数")
           print(i,"乘于",num//i,"是",num)
           break
   else:
       print(num,"是质数")
       
# 如果输入的数字小于或等于 1,不是质数
else:
   print(num,"不是质数")

输出指定范围内的素数

#!/usr/bin/python3
 
# 输出指定范围内的素数
 
# take input from the user
lower = int(input("输入区间最小值: "))
upper = int(input("输入区间最大值: "))
 
for num in range(lower,upper + 1):
    # 素数大于 1
    if num > 1:
        for i in range(2,num):
            if (num % i) == 0:
                break
        else:
            print(num)

阶乘实例

num = int(input('输入一个数字'))
factorial = 1

if num < 0:
    print('抱歉,负数没有阶乘')
elif num == 0:
    print('0 的阶乘为1')
else:
    for i in range(1, num + 1):
        factorial = factorial * i
    print("%d 的阶乘为 %d"%(num,factorial))

九九乘法表

for i in range(1,10):
    for j in range(1,i):
        print('{}x{}={}\t'.format(i, j, i*j))
    print()

斐波那契数列

nterms = int(input('你需要几项'))

n1 = 0
n2 = 1
count = 2

if nterms <= 0:
    print('输入一个整数')
elif nterms == 1:
    print('斐波那契数列:')
    print(n1)
else:
    print("斐波那契数列:")
    print(n1, ',', n2, end=",")
    while count < nterms:
        nth = n1 + n2
        print(nth, end=",")

        n1 = n2
        n2 = nth
        count += 1

阿姆斯特朗数

# 获取用户输入的数字
num = int(input("请输入一个数字: "))
 
# 初始化变量 sum
sum = 0
# 指数
n = len(str(num))
 
# 检测
temp = num
while temp > 0:
   digit = temp % 10
   sum += digit ** n
   temp //= 10
 
# 输出结果
if num == sum:
   print(num,"是阿姆斯特朗数")
else:
   print(num,"不是阿姆斯特朗数")

获取指定期间内的阿姆斯特朗数

# Filename :test.py
# author by : www.runoob.com
 
# 获取用户输入数字
lower = int(input("最小值: "))
upper = int(input("最大值: "))
 
for num in range(lower,upper + 1):
   # 初始化 sum
   sum = 0
   # 指数
   n = len(str(num))
 
   # 检测
   temp = num
   while temp > 0:
       digit = temp % 10
       sum += digit ** n
       temp //= 10
 
   if num == sum:
       print(num)

十进制转二进制、八进制、十六进制

dec = int(input("输入数字:"))
print('十进制为:',dec)
print("二进制为:",bin(dec))
print("八进制为:",oct(dec))
print("十六进制为:",hex(dec))

ASCII码与字符相互转换

c = input('请输入一个字符:')
print(c + '的ASCII码为', ord(c))

a = int(input('请输入一个ASCII码:'))
print(a ,'对应的字符为', chr(a))

最大公约数算法

def hcf(x, y):
   """该函数返回两个数的最大公约数"""
 
   # 获取最小值
   if x > y:
       smaller = y
   else:
       smaller = x
 
   for i in range(1,smaller + 1):
       if((x % i == 0) and (y % i == 0)):
           hcf = i
 
   return hcf

用户输入两个数字

num1 = int(input("输入第一个数字: "))
num2 = int(input("输入第二个数字: "))
 
print( num1,"和", num2,"的最大公约数为", hcf(num1, num2))

最小公倍数算法

# 定义函数
def lcm(x, y):
 
   #  获取最大的数
   if x > y:
       greater = x
   else:
       greater = y
 
   while(True):
       if((greater % x == 0) and (greater % y == 0)):
           lcm = greater
           break
       greater += 1
 
   return lcm
 
# 获取用户输入
num1 = int(input("输入第一个数字: "))
num2 = int(input("输入第二个数字: "))
 
print( num1,"和", num2,"的最小公倍数为", lcm(num1, num2))

简单计算器实现

# 定义函数
def add(x, y):
   """相加"""
 
   return x + y
 
def subtract(x, y):
   """相减"""
 
   return x - y
 
def multiply(x, y):
   """相乘"""
 
   return x * y
 
def divide(x, y):
   """相除"""
 
   return x / y
 
# 用户输入
print("选择运算:")
print("1、相加")
print("2、相减")
print("3、相乘")
print("4、相除")
 
choice = input("输入你的选择(1/2/3/4):")
 
num1 = int(input("输入第一个数字: "))
num2 = int(input("输入第二个数字: "))
 
if choice == '1':
   print(num1,"+",num2,"=", add(num1,num2))
 
elif choice == '2':
   print(num1,"-",num2,"=", subtract(num1,num2))
 
elif choice == '3':
   print(num1,"*",num2,"=", multiply(num1,num2))
 
elif choice == '4':
   print(num1,"/",num2,"=", divide(num1,num2))
else:
   print("非法输入")

Python 生成日历

import calendar

yy = int(input("输入年份:"))
mm = int(input('输入月份:'))
print(calendar.month(yy,mm))

使用递归斐波那契数列

def recur_fibo(n):
   """递归函数
   输出斐波那契数列"""
   if n <= 1:
       return n
   else:
       return(recur_fibo(n-1) + recur_fibo(n-2))
 
# 获取用户输入
nterms = int(input("您要输出几项? "))
 
# 检查输入的数字是否正确
if nterms <= 0:
   print("输入正数")
else:
   print("斐波那契数列:")
   for i in range(nterms):
       print(recur_fibo(i))

文件 IO

##encoding='utf8'
# 写文件
with open("test.txt", "wt",encoding='utf8') as out_file:
    out_file.write("kajdfkjadkfjkladjfka")
    s = "该文本会写入到文件中\n看到我了吧!"
    out_file.write(s)

# Read a file
with open("test.txt", "rt",encoding='utf8') as in_file:
    text = in_file.read()

print(text)

字符串判断

str = "测试"
print(str.isalnum()) # 判断所有字符都是数字或者字母
print(str.isalpha()) # 判断所有字符都是字母
print(str.isdigit()) # 判断所有字符都是数字
print(str.islower()) # 判断所有字符都是小写
print(str.isupper()) # 判断所有字符都是大写
print(str.istitle()) # 判断所有单词都是首字母大写,像标题
print(str.isspace()) # 判断所有字符都是空白字符、\t、\n、\r

字符串大小写转换

str = "qwertyuiop"
print(str.upper())          # 把所有字符中的小写字母转换成大写字母
print(str.lower())          # 把所有字符中的大写字母转换成小写字母
print(str.capitalize())     # 把第一个字母转化为大写字母,其余小写
print(str.title())          # 把每个单词的第一个字母转化为大写,其余小写 

计算每个月天数

import calendar
monthRange = calendar.monthrange(2016,9)
print(monthRange)

获取昨天日期

# 引入 datetime 模块
import datetime
def getYesterday(): 
    today=datetime.date.today() 
    oneday=datetime.timedelta(days=1) 
    yesterday=today-oneday  
    return yesterday
 
# 输出
print(getYesterday())
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,386评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,142评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,704评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,702评论 1 294
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,716评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,573评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,314评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,230评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,680评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,873评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,991评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,706评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,329评论 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,910评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,038评论 1 270
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,158评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,941评论 2 355

推荐阅读更多精彩内容

  • Python 面向对象Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类和对...
    顺毛阅读 4,218评论 4 16
  • Python 二三事 面向初学者介绍Python相关的一些工具,以及可能遇到的常见问题。 最后更新 2013.5....
    hzyido阅读 67,756评论 2 42
  • (这是很早之前写的但内容没有太过时,发到这边补全一下...)面向初学者介绍Python相关的一些工具,以及可能遇到...
    jagttt阅读 67,287评论 3 44
  • 引言 在这里我假设你已经看完了一篇Python教程,基本熟悉了Python的结构和语法,在命令行下的Python互...
    python瑟维尔阅读 288评论 0 2
  • 看电影哭得稀里哗啦 想着青梅枯萎竹马老去 那些陪我走完青春的人 我也许没有喜欢过 但总是惦念着 为了一个不相干的故...
    哀慕熙荣阅读 108评论 0 1